【问题标题】:Is there a way to send an iMessage to a group chat using Applescript or any Python module?有没有办法使用 Applescript 或任何 Python 模块将 iMessage 发送到群聊?
【发布时间】:2021-12-15 20:55:21
【问题描述】:

我尝试过 pyimessage、applescript 和 osascript。我能找到的唯一看起来很有希望的是这个较老的 stackoverflow 问题:

Send group iMessage using applescript

我无法让它工作。有人可以发送到现有的群聊吗?

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • 首先您需要弄清楚如何在脚本编辑器中使用 AppleScript 发送聊天消息。一旦你让那部分正常工作,你就可以弄清楚如何从 osascript/py-applescript 作为一个单独的步骤运行那个 AppleScript。如果您在这些步骤中遇到困难,请发布您的代码以及您拥有的任何错误信息,以便这里的人们可以看到您的位置。

标签: python applescript imessage osascript


【解决方案1】:

我可以在 applescript 上发送单独的消息。我还可以将同一条消息发送给多个人。我不能做的是发送到群聊。我有一个组名,其中包含在我的 icloud、我的联系人和当前聊天中命名的两个人。这是我使用的代码:

import PySimpleGUI as sg
import sys
import subprocess
from os import system, name
from playsound import playsound

people = "Firstname Lastname", "Firstname Lastname"
msg = 'test'


def onCall():
    
    applescript = (
    """
set people to "{0}"


tell application "Messages"
    repeat with myBuddy in buddies
        --get properties of myBuddy
        if name of myBuddy is in people then
            send "{1}" to myBuddy
        end if
    end repeat
end tell
""".format(people, msg
           )
    )
    
    args = [
        item
        for x in [("-e", l.strip()) for l in applescript.split("\n") if l.strip() != ""]
        for item in x
    ]
    proc = subprocess.Popen(["osascript"] + args, stdout=subprocess.PIPE)
    progname = proc.stdout.read().strip()


我用一个可点击的按钮调用该函数,当名字和姓氏是已知联系人时发送消息。 我没有收到错误消息。当我尝试将任何值更改为“TestGroup”(这是我的群聊命名的)时,文本不会发送。

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 2013-04-04
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 2014-03-02
    • 2022-06-24
    • 1970-01-01
    相关资源
    最近更新 更多