iMessage
Подключение PRX к iMessage с использованием базы данных macOS Messages и моста AppleScript для нативной интеграции с iMessage.
Предварительные требования
- Только macOS — интеграция с iMessage требует macOS (рекомендуется Monterey 12.0 или новее)
- Активный аккаунт iMessage, авторизованный в приложении Messages
- Доступ «Полный доступ к диску» (Full Disk Access), предоставленный процессу PRX (для чтения базы данных Messages)
Быстрая настройка
1. Предоставление полного доступа к диску
- Откройте Системные настройки > Конфиденциальность и безопасность > Полный доступ к диску
- Добавьте терминальное приложение или бинарник PRX в список
- Перезапустите терминал или процесс PRX
2. Конфигурация
3. Проверка
bash
prx channel doctor imessage1
Справочник конфигурации
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
allowed_contacts | [String] | обязательный | Разрешённые контакты iMessage: номера телефонов (E.164) или адреса электронной почты. Пусто = запрещено всем |
Возможности
- Нативная интеграция с macOS — прямое чтение из SQLite-базы данных Messages
- Мост AppleScript — отправка ответов через
osascriptдля надёжной доставки сообщений - Контакты по телефону и email — фильтрация по номерам телефонов или адресам электронной почты Apple ID
- Поддержка современных macOS — обработка формата
attributedBodytypedstream, используемого в 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