3

Yosemite 10.10.2 の Messages アプリを介して iMessage を送信する JavaScript for Automation スクリプトを作成しようとしています (最終目標は、バックオフィス タスクを iMessage の障害ステータスなどに許可するソリューションを作成することです)。

スクリプトは Script Editor でエラーなく実行されますが、メッセージは送信されず、Messages.app では何も表示されず、何も起こりません。以下のサービスとバディは難読化されていますが、実際の値を使用したスクリプトは正しいサービスとバディを取得します (サービスとバディ名の両方に対して messages.displayAlert() を実行することで確認されます)。スクリプトから得られる唯一の出力は、service.send() の「未定義」です。これは、そのメソッドの戻り値の型が void であるため、正しいと思います)。以下のこのスクリプトは、私がうまく機能させようとして失敗したものです。

messages = Application('Messages');

service = messages.services["E:foo@bar.com"];
buddy = service.buddies["+61nnnnnnnnn"]

service.send({
    send: "Hello World", 
    to: buddy
}); 

同等の AppleScript スクリプト (以下) は正常に動作します。

tell application "Messages"
    send "Hello World" to buddy "+61nnnnnnnnn" of service "E:foo@bar.com"
end tell
4

3 に答える 3

2

http://gwfrontiers.blogspot.nl/2015/01/javascript-for-automation-of-messages.htmlに基づく

with (Application("Messages")) { 
    send("Hey", {to: services["E:johndoe@icloud.com"].buddies["someone@somewhere.com"]}) 
}

buddies パラメーターは、送信先の電子メール アドレスまたは電話番号です。johndoe@icloud.com は (この場合) iMessage サービス名です。から選びます:

services = Application("Messages").services();
for (var i in services) console.log(services[i].name());
于 2015-02-27T15:44:08.010 に答える
1

サービスではなく、メッセージ インスタンスで send メソッドを呼び出す必要があります。このように: messages.send("hello", {to: buddy}) また、送信するメッセージは、上記の例のように最上位のパラメーターである必要があります。

于 2017-07-09T09:13:25.690 に答える