无论收件人的操作系统如何,如何通过Messages.app自动发送文本?

时间:2018-05-08 21:35:08

标签: applescript sms imessage

我的目标是使用FileMaker的Perform AppleScript步骤将macOS上的自动文本发送到FileMaker记录中的电话号码(因此tell app "FileMaker"不在下面的脚本中)。

这些联系人不在Contacts.app的数据库中,因此tell app "Messages" to send ...不是一个选项,至少不是直接选择。

这是我目前的剧本。

set _delay to 0.5

set _phone_number to repetition 1 of cell "APPLESCRIPT_PIPE" of layout "DEV"
set the clipboard to _phone_number

set _msg to repetition 2 of cell "APPLESCRIPT_PIPE" of layout "DEV"

tell application "System Events"
  tell process "Messages"
    set frontmost to true
    keystroke "n" using {command down}
    delay _delay

    keystroke "v" using {command down}
    delay _delay

    keystroke return
    delay _delay

    tell text area 1 of scroll area 4 of splitter group 1 of window 1
      set value to _msg
      delay _delay

      keystroke return

    end tell

  end tell
end tell

activate

在向iPhone发送文本时,这种方式可以完美运行,但当收件人使用没有iMessages的手机时,有时无法传送。

enter image description here

单击“未交付”按钮,然后单击“再试一次”,通过短信发送。

如果电话号码在Contacts.app数据库中,

tell app "Messages" to send...有效,至少它已经测试了一些,但是向数据库添加联系人,然后尝试向该联系人发送文本不起作用。这是我试过的脚本:

tell application "Contacts"
  set _person to make new person with properties¬
    {first name:"Bruce", last name:"Wayne"}
  tell _person
    make new phone at end of phones of _person with properties¬
      {label:"mobile", value:"1234567890"}
  end tell
  save
end tell

tell application "Messages"
  send "Chuck's test" to buddy "1234567890" of service "SMS"
end tell

联系人确实已添加到数据库中,但邮件未发送。没有生成错误,它只是不发送。

任何人都知道如何确保Android手机上的文字第一次通过,或者作为后备,是一种检测何时不进行检测的方法?

1 个答案:

答案 0 :(得分:1)

我已经开发了一个Filemaker脚本,该脚本可用于我通过iMe​​ssage或SMS发送消息(无需将好友添加到联系人应用程序)。正如Filemaker所熟悉的,您可以

  1. 设置变量$ Message和要发送的文本
  2. 设置具有电话号码的变量$ PhoneNumber(由“ +0123456789”过滤)
  3. 对已计算的Applescript使用“执行Applescript”步骤,如下所示:

"display dialog \"Send SMS?\" default answer \"" & $Message & "\" buttons {\"Cancel\", \"OK\"} default button 2" & ¶ & "copy the result as list to {button_pressed, text_returned}" & ¶ & "if button_pressed is \"OK\" then" & ¶ & "tell application \"Messages\"" & ¶ & "send text_returned to buddy \"" & $PhoneNumber & "\" of service \"SMS\" " & ¶ & "end tell" & ¶ & "end if"

我添加了一个对话框,可以在Filemaker数据库中编辑自动格式化的消息。我的下一步是能够在发送的短信中添加ical事件...欢迎任何想法;-)