Это простая версия робота WeChat, созданная с использованием AppleScript и версии клиента WeChat для Mac. Этот робот возник потому, что я хотел создать чат-бота, который помогал бы мне записывать данные о потреблении, диете, физических упражнениях и другие данные, а также обобщать содержание статей в общедоступных аккаунтах WeChat. В настоящее время основным решением для реализации ChatBot с использованием личного WeChat является Wechaty. Однако среди марионеток, используемых Wechaty, бесплатная веб-версия или версия UOS недостаточно стабильна (это означает, что ее часто необъяснимым образом отключают от сети). Такие решения, как ipadloacl, стабильны. и многофункциональный. Вам нужно потратить дополнительные золотые монеты для покупки жетонов. Итак, после нескольких небольших попыток я реализовал этого робота WeChat, который медленный, имеет мало функций, но достаточно стабилен ( я выбрал версию клиента WeChat для Mac, потому что у меня есть только устройства Mac ).
Этот робот в основном выполняется с использованием AppleScript, дополненного некоторым кодом Python. Python используется, поскольку операция щелчка мышью, поставляемая с AppleScript, не может использоваться в клиенте WeChat, поэтому для реализации операции щелчка используется дополнительная библиотека Python. Поэтому вам нужно сначала иметь интерпретатор Python3 и установить PyUserInput:
pip3 install PyUserInput
Конечно, если у вас есть другие решения для имитации щелчков мыши, вы также можете использовать свои собственные (я обнаружил, что PyUserInput устарел только тогда, когда писал этот README).
Далее вам необходимо изменить некоторые конфигурации в wemac .applescript
следующим образом:
mouseclick.py
;После установки вышеуказанных переменных вы можете попробовать запустить скрипт один раз. Перед запуском убедитесь, что вы вошли в версию WeChat для Mac . Выполните сценарий, и вы обнаружите, что AppleScript автоматически найдет целевой чат, щелкнет по окну чата и начнет удалять самую последнюю запись чата . Да, этот AppleScript удалит запись чата. нет места для записи каждого сообщения, вы можете избежать повторного ответа, удалив сообщение; если сообщение находится у робота, то выполнение AppleScript будет завершено. что будет обработано только одно выполнение AppleScript. Сообщение будет обработано .
Итак, как обеспечить работу робота? Возможное решение — написать run.sh
и написать в нем бесконечный цикл для непрерывного выполнения wemac .applescript
(на самом деле, я делаю это сам).
Если вы хотите настроить содержимое ответа, например подключиться к большой языковой модели, вы можете добавить свою собственную логику ответа в комментарий «Логика обработки сообщений» в строке 270 файла wemac .applescript
Поскольку сам AppleScript имеет ограниченные возможности, вы можете это сделать. используйте оболочку для подключения другого языка, например Python, вы можете вызвать сценарий Python для настройки содержимого ответа следующим образом:
set replyMessage to do shell script "python3 your_script.py " & (my escaped(question))
Стандартный вывод (stdout) исполняемой оболочки будет присвоен replyMessage
и затем отправлен роботом в качестве ответа.
При объединении команд оболочки вы можете использовать функцию escaped
для экранирования параметров во избежание атак путем внедрения.
На этом этапе работает простой чат-бот. В ходе процесса вы можете столкнуться с некоторыми ошибками, из-за которых не удается найти элементы, но, вообще говоря, игнорируйте их и перезапускайте AppleScript.
run.sh
несколько сценариев AppleScript одновременно для обработки разных чатов, но это замедлит скорость работы;Но преимущество в том, что он достаточно стабилен и может работать вечно, пока вы входите в систему. Теоретически использование AppleScript для имитации кликов не будет обнаружено WeChat и приведет к блокировке учетной записи.
Используемая версия клиента WeChat для Mac — Version. 3.8.6 (28078)
.