Стоит задача: отправлять пользователям сайта Web PUSH
уведомления, когда наступает определенное событие. Делать это необходимо максимально быстро (задержка не должна составлять более 1 минуты).
Поэтому решил не использовать всяческие сервисы, которые предоставляют такую возможность, а использовать базовое решение через Firebase Cloud Messaging
, инструкция по которому подробно описана здесь Хабр
Суть в чём...Опуская js
, проблема сейчас в доставке данных "пушей".
Токен пользователя получен и записан в БД. Т.е. разрешение на получение сообщений получено, токен известен.
Каждую минуту запускается cron и выполняет php-скрипт, который при необходимости отправляет сообщение через curl на fcm.googleapis.com/fcm/send
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $control->_connect_ini['google_url']);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($ch);
curl_close($ch);
Всё как по инструкции. Однако, если запускать этот скрипт вручную из консоли - всё отправляется отлично в 100% случаев. Если же этот скрипт запускается по крону, то сообщение в 90% случаев не выводится, хотя весь код отрабатывает без ошибок и ответом от гугла приходит массив с данными об успешной отправке.
{
"canonical_ids": 0,
"failure": 0,
"multicast_id": 5652500584254823832,
"results": [
{
"message_id": "0:1527001372290285%2fd9afcdf9fd7ecd"
}
],
"success": 1
}
Не могу понять где собака зарыта.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
При взвешивании авто на автовесовой (Тара, Брутто) данные попадают в 1С 83 Как вывести значение при взвешивании и скриншоты с четырех IP камер...
вкратце поясню задачу - пишу небольшой плагин для авторизации, регистрации и прочих взаимодействий пользователя с сайтомВ одной части кода,...
Непонятно почему в один прекрасный день скрипт стал выбрасывать ошибку
Пишу скрипт на php! Я новичок и мне необходимо взять длительность музыкального трека из VKНедаво ВК закрыли эту возможность и передаётся лишь...