BlueBubbles (iMessage)
Подключите Hermes к Apple iMessage через BlueBubbles — бесплатный сервер с открытым исходным кодом для macOS, который связывает iMessage с любыми устройствами.
Предварительные требования
- Mac (постоянно включенный) с активированным BlueBubbles Server
- Apple ID, выполнивший вход в Messages.app на этом Mac
- BlueBubbles Server версия 1.0.0+ (для вебхуков требуется эта версия)
- Сетевая связь между Hermes и сервером BlueBubbles.
Настройка
1. Установите сервер BlueBubbles
Загрузите и установите с bluebubbles.app. Пройдите к основным настройкам — войдите с помощью Apple ID и настройте способ подключения (локальная сеть, Ngrok, Cloudflare или Dynamic DNS).
2. Получите URL-адрес сервера и пароль.
В BlueBubbles Server → ** Настройки → API запишите:
- URL-сервер (например, http://192.168.1.10:1234)
- Пароль сервера**
3. Настроить Гермес
Запустите мастер настроек:
hermes gateway setup
Выберите BlueBubbles (iMessage) и введите URL-адрес сервера и пароль.
Или задайте переменные окружения непосредственно в ~/.hermes/.env:
BLUEBUBBLES_SERVER_URL=http://192.168.1.10:1234
BLUEBUBBLES_PASSWORD=ваш-пароль-сервера
4. Авторизуйте пользователей
Выберите один из подходов:
Сопряжение через DM (рекомендуется): Когда кто-то отправляет сообщение в ваш iMessage, Hermes автоматически отправляет код соединения. Подтвердите его с помощью:
hermes pairing approve bluebubbles <КОД>
Используйте «список сопряжения Hermes», чтобы просмотреть ожидаемые коды и одобренные пользователи.
Предварительная авторизация конкретных пользователей (в ~/.hermes/.env):
BLUEBUBBLES_ALLOWED_USERS=user@icloud.com,+15551234567
Открытый доступ (в ~/.hermes/.env):
BLUEBUBBLES_ALLOW_ALL_USERS=true
5. Запустить шлюз
hermes gateway run
Hermes подключается к вашему серверу BlueBubbles, регистрирует вебхук и начинает прослушивание сообщений iMessage.
Как это работает
iMessage → Messages.app → BlueBubbles Server → Вебхук → Hermes
Hermes → BlueBubbles REST API → Messages.app → iMessage
- Входящие: BlueBubbles отправляет события вебхука локальному слушателю при поступлении новых сообщений. Без опроса — мгновенная доставка.
- Исходит: Hermes отправляет сообщения через BlueBubbles REST API.
- Средства массовой информации: изображения, голосовые сообщения, видео и документы подаются в обоих направлениях. Входящие вложения загружаются и кэшируются локально для обработки агентом.
Переменные окружения
| Переменная | Обязательная | По умолчанию | Описание |
|---|---|---|---|
BLUEBUBBLES_SERVER_URL |
Да | — | URL сервера BlueBubbles |
BLUEBUBBLES_PASSWORD |
Да | — | Пароль сервера |
BLUEBUBBLES_WEBHOOK_HOST |
Нет | 127.0.0.1 |
Адрес привязки слушателя вебхука |
BLUEBUBBLES_WEBHOOK_PORT |
Нет | 8645 |
Порт слушателя вебхука |
BLUEBUBBLES_WEBHOOK_PATH |
Нет | /bluebubbles-webhook |
Путь URL вебхука |
BLUEBUBBLES_HOME_CHANNEL |
Нет | — | Телефон/электронная почта для доставки cron |
BLUEBUBBLES_ALLOWED_USERS |
Нет | — | Авторизованные пользователи через запятую |
BLUEBUBBLES_ALLOW_ALL_USERS |
Нет | ложь |
Разрешить всех пользователей |
Автоматическая отметка сообщений как прочитанных управляется ключом send_read_receipts в разделе platforms.bluebubbles.extra в ~/.hermes/config.yaml (по умолчанию: true). Соответствующей переменной окружения нет.
Возможности
Текстовые сообщения
Отправляйте и получайте iMessages. Markdown автоматически удаляется для чистой доставки в обычном виде текста.
Богатый медиаконтент
- Изображения: Фотографии представлены в беседе iMessage
- Голосовые сообщения: Аудиофайлы отправляются как голосовые сообщения iMessage.
- Видео: Видеовложения
- Документы: Файлы отправляются как приложения iMessage.
Реакции Tapback
Реакции «Нравится», «Не нравится», «Смех», «Подчеркнуть» и «Вопрос». Требуется помощник Private API BlueBubbles.
Индикаторы набора текста
Показывает «печатает...» в беседе iMessage, пока агент обрабатывает сообщение. Требуется частный API.
Уведомления о прочтении
Автоматически отмечает сообщения как прочитанные после обработки. Требуется частный API.
Адресация чатов
Вы можете адресовать чаты по электронной почте или номеру телефона — Hermes автоматически преобразует их в GUID чатов BlueBubbles. Нет необходимости использовать сырой формат GUID.
Частный API
Некоторые функции требуют помощника Private API BlueBubbles: - Реакции Tapback - Индикаторы набора текста - Уведомления о прочтении - Создание новых чатов по адресу
Без Private API базовая отправка текстовых сообщений и медиа всё равно работает.
Устранение неполадок
«Не даётся уведомить с сервера»
- Убедитесь, что URL-сервер правильный и Mac включен.
- Проверьте, что сервер BlueBubbles запущен.
- Обеспечьте сетевую связь (брандмауэр, переадресация портов)
Сообщения не приходят
- Проверьте, что вебхук зарегистрирован на сервере BlueBubbles → Настройки → API → Вебхуки
- Убедитесь, что URL вебхука доступен на Mac
- Проверьте
hermes logsшлюзна наличие ошибок вебхука (илиhermes logs -fдля идентификации в первое время)
«Помощник Private API не подключен»
- Выберите помощник частного API: docs.bluebubbles.app
- Базовая отправка сообщений работает без него — только Режим, наборы индикаторов и уведомления о прочтении требуют его присутствия.