所以我正在努力创建一个基本上自动发送imessage的applescript.我现在的工作是:
on run {msg, phoneNum}
    tell application "Messages"
        set serviceID to id of 1st service whose service type = iMessage
        send msg to buddy phoneNum of service id serviceID
    end tell
end run
Run Code Online (Sandbox Code Playgroud)
除了在开始新会话时不起作用外,这大部分都有效.当您将脚本运行到与消息中没有对话的号码时,会收到一条弹出警告,提示"您的消息没有任何收件人".但是,这会创建与该人的对话,并且当您再次运行相同的脚本时,它会起作用.
我想如果它第二次运行,必须有办法以某种方式创建一个新的对话,但我从来没有真正使用过AppleScript或者之前的任何脚本语言,所以我不知道该怎么做.
编辑:发布后我立刻想到了一个粗略的解决方法.如果在您发送消息之前发送空字符串,则可以创建新会话,并且它可以与现有会话一起使用.
on run {msg, phoneNum}
    tell application "Messages"
        set serviceID to id of 1st service whose service type = iMessage
        send "" to buddy phoneNum of service id serviceID
        send msg to buddy phoneNum of service id serviceID
    end tell
end run
Run Code Online (Sandbox Code Playgroud)
虽然这有效,但我认为有一种比这更好/更优雅的解决方案.
所以我已经查看了其他问题,但我无法提出解决方案.基本上,我有一个父片段和一个子片段,我需要将一个整数传递给子片段.子片段是在XML中定义的,所以据我所知,我无法附加一个包.看起来它应该很简单,但我无法弄明白.
任何有关如何做到这一点的帮助都会很棒.谢谢!