Прочитал всю тему и всё равно потратил достаточно много времени и усилий, чтобы разобраться.
Моя цель - получить push-уведомление на смартфон, например, по нажатии кнопки в MD.
Решил так:
1. Установил модуль Pushbullet. Он установился в папку "c:\_majordomo\htdocs\modules\pushbullet".
2. Зарегистрировался на PushBullet.com, добавил там свой смартфон в устройства.
3. Нашёл и запомнил deviceId смартфона: PushBullet.com > Devices > клик по своему устройству в списке; при этом URL в адресной строке браузера имеет вид
https://www.pushbullet.com/#devices/ujC ... jAEVsKnSTs, где ujC2uy93qJnsjAEVsKnSTs и есть искомый deviceId (конечно, я его заменил на фейковый для этого поста). Есть ещё один способ узнать deviceId - по логам MD, о нём позже.
4. Сконфигурировал на PushBullet.com APIKey для отправки сообщений из MD через этот сервис: PushBullet.com > клик по аватарке своего эккаунта в правом верхнем углу > My Account > Access Tockens. Получил токен вида o#z9uKo9qvPMGvLqSqGIJ4b6t1LPUe1faK (тоже для примера ненастоящий).
5. Далее в MD добавил кнопку и повесил на неё такой php-код:
Код: Выделить всё
include_once(ROOT.'modules/pushbullet/pushbullet.inc.php');
$apiKey = 'o#z9uKo9qvPMGvLqSqGIJ4b6t1LPUe1faK';
$deviceId = 'ujC2uy93qJnsjAEVsKnSTs';
$p = new PushBulletAPI($apiKey);
$p->pushNote($deviceId, 'Заголовок', 'Текст сообщения');
Возможно, APIKey и deviceId можно получить каким-то красивым способом (нужно поковыряться в исходниках модуля), а не хардкодить непосредственно в обработчике кнопки, но это задача на будущее, сейчас принципиальная цель достигнута - нотификации на смартфон успешно приходят.
Кстати, занимался этой задачей ночью, не достиг успеха и уже было потерял надежду, но утром увидел на смартфоне системные уведомления MD (в финальном варианте настроки модуля pushbullet я оставил пустым поле "Recipient device(s) ID(s):", заполнил только "API Key: (*)")! Оказалось, что моя ошибка была в том, что я изначально в deviceId прописывал title смартфона, как я его видел на PushBullet'е вместо id. Но, проанализировав логи, увидел строку:
10:00:01 0.16877300 Sending to ujC2uy93qJnsjAEVsKnSTs title: 10 часов , data:
откуда и понял причину ошибки. MD умеет вытягивать с сайта список всех устройств с их deviceId, и при отправке системных сообщений выводит этот deviceId в лог X-Ray > Debug. Это второй способ узнать deviceId, вполне рабочий, если устройство всего одно.