Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

iMessage

Подключение PRX к iMessage с использованием базы данных macOS Messages и моста AppleScript для нативной интеграции с iMessage.

Предварительные требования

  • Только macOS — интеграция с iMessage требует macOS (рекомендуется Monterey 12.0 или новее)
  • Активный аккаунт iMessage, авторизованный в приложении Messages
  • Доступ «Полный доступ к диску» (Full Disk Access), предоставленный процессу PRX (для чтения базы данных Messages)

Быстрая настройка

1. Предоставление полного доступа к диску

  1. Откройте Системные настройки > Конфиденциальность и безопасность > Полный доступ к диску
  2. Добавьте терминальное приложение или бинарник PRX в список
  3. Перезапустите терминал или процесс PRX

2. Конфигурация

toml
[channels_config.imessage]
allowed_contacts = ["+1234567890", "[email protected]"]

3. Проверка

bash
prx channel doctor imessage

Справочник конфигурации

ПолеТипПо умолчаниюОписание
allowed_contacts[String]обязательныйРазрешённые контакты iMessage: номера телефонов (E.164) или адреса электронной почты. Пусто = запрещено всем

Возможности

  • Нативная интеграция с macOS — прямое чтение из SQLite-базы данных Messages
  • Мост AppleScript — отправка ответов через osascript для надёжной доставки сообщений
  • Контакты по телефону и email — фильтрация по номерам телефонов или адресам электронной почты Apple ID
  • Поддержка современных macOS — обработка формата attributedBody typedstream, используемого в macOS Ventura и новее
  • На основе опроса — периодическая проверка базы данных Messages на наличие новых сообщений

Ограничения

  • Только macOS — недоступен на Linux или Windows
  • Требуется полный доступ к диску для чтения ~/Library/Messages/chat.db
  • Приложение Messages должно быть запущено (или как минимум авторизовано)
  • Невозможно инициировать разговоры с новыми контактами; контакт должен иметь существующий разговор
  • Групповые чаты iMessage в настоящее время не поддерживаются
  • Интервал опроса вносит небольшую задержку по сравнению с push-каналами
  • Отправка через AppleScript может не работать в безголовых (только SSH) окружениях macOS

Устранение неполадок

«Permission denied» при чтении базы данных Messages

  • Убедитесь, что полный доступ к диску предоставлен процессу PRX или его родительскому терминалу
  • На macOS Ventura+ проверьте в Системные настройки > Конфиденциальность и безопасность > Полный доступ к диску
  • Перезапустите терминал после предоставления разрешений

Сообщения не обнаруживаются

  • Проверьте, что приложение Messages авторизовано с вашим Apple ID
  • Убедитесь, что контакт указан в allowed_contacts (номер телефона в формате E.164 или email)
  • Новые сообщения могут потребовать один цикл опроса для обнаружения

Ответы не отправляются

  • Убедитесь, что приложение Messages запущено (а не просто авторизовано)
  • Отправка через AppleScript требует доступа к GUI; сессии только через SSH могут не работать
  • Проверьте Console.app macOS на наличие ошибок AppleScript

Released under the Apache-2.0 License.