Как начать новый разговор в iMessage, используя AppleScript?
Итак, я работаю над созданием 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
Это работает по большей части, за исключением того, что он не работает при запуске нового сеанса. Когда вы запускаете script на номер, с которым в сообщениях не ведется беседа, появляется всплывающее предупреждение о том, что "у вашего сообщения нет получателей". Однако это создает разговор с этим человеком, и когда вы снова запускаете тот же script, он работает.
Я решил, что если он работает во второй раз, должен быть способ создать новый разговор, но я никогда не использовал яблоки или действительно какие-либо языки script, поэтому я не уверен, как это сделать.
Изменить: сразу после публикации я думал о грубом обходном пути. Если перед отправкой сообщения вы отправляете пустую строку, вы можете создать новый диалог и работать с уже существующим разговором.
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
Пока это работает, я бы предположил, что есть лучшее/более элегантное решение, чем этот.
Ответы
Ответ 1
Есть много способов сделать это.
Первый пример:
on run {targetBuddyPhone, targetMessage}
tell application "Messages"
set targetService to 1st service whose service type = iMessage
set targetBuddy to buddy targetBuddyPhone of targetService
send targetMessage to targetBuddy
end tell
end run
Второй пример:
tell application "Messages"
set targetBuddy to "+18001234567"
set targetService to id of 1st service whose service type = iMessage
repeat
set textMessage to "Hello pal!"
set theBuddy to buddy targetBuddy of service id targetService
send textMessage to theBuddy
delay (random number from 10 to 30)
end repeat
end tell
Ответ 2
Кто-нибудь нашел решение для этого? У меня есть простой AppleScript, который работает, но не работает, когда приходится начинать новый разговор в сообщениях.
Ответ 3
Мое решение состоит в том, чтобы сказать Applescript нажать "Command + N", что является клавишей "Начать новый разговор".
activate application "Messages"
tell application "System Events" to tell process "Messages"
key code 45 using command down -- press Command + N to start a new window
keystroke "<replace with phone number>" -- input the phone number
key code 36 -- press Enter to focus on the message area
keystroke "<replace with message>" -- type some message
key code 36 -- press Enter to send
end tell
Этот скрипт начнет новый разговор и отправит сообщение на номер телефона через iMessage