Отслеживаем состояние Push-уведомления и другие новости

от автора

За последние несколько дней в PushAll был реализован функционал отслеживания состояния уведомления и получения ленты канала, которым вы владеете.

Что это нам дает? Теперь, если у вас на сайте есть отправка уведомлений через SMS, вы можете делать так:

  1. Отправляем Push
  2. Через 30-50 секунд проверяем, пришло ли пользователю уведомление, отреагировал ли он на него
  3. Если не пришло, шлет ему SMS, звоним, шлем на почту и т.д.

Таким образом, можно уменьшить число отправляемых SMS-оповещений в разы, сэкономив этим много денег.

Под катом небольшая документация по использованию и несколько других изменений.

Мониторинг через веб-интерефейс

Данный метод отслеживания доступен уже давно. Он позволяет отслеживать состояние broadcast-рассылок в ленте.

Из нововведений можно выделить, что теперь показывается не только число устройств, но и число пользователей.

Получение данных через Showlist API

Это новая функция, предназначенная для получения данных о ленте и статистике.
Для работы необходимо отправить GET или POST запрос по адресу
pushall.ru/api.php
С параметрами:
"type" => "showlist", "id" => "ID вашего канала", "key" => "ключ вашего канала"
Это позволит получить вам последние 200 записей вашей ленты. Можно передать параметр limit и самому задать число записей для вывода.

Для получения данных о определенном уведомлении нам сначала надо сообщить одну новость.
Теперь все типы рассылок на выходе отдают JSON ответ вида:
{«success»:2,«unfilt»:1,«all»:1,«lid»:21074}
«success» — число устройств, которые должны получить уведомление
«unfilt» — число устройств, на которые была произведена отправка.
«all» — всего возможных устройств.
«lid» — LogId — идентификационный номер уведомления, именно через него можно будет получать данные о статистике.

success и unfilt отличаются тем, что unfilt это число до отправки, а success это количество, на которое было отправлено на самом деле. Оно может отличаться, если при отправке было выявлено, что какое-либо устройство было удалено и больше не отвечает.

При получении всей ленты ответ сервера будет отправлен в виде JSON и выглядеть примерно так:

{     "data": [{         "id": 21074,         "title": "Уведомление PushAll",         "text": "Тест",         "url": "",         "icon": "https:\/\/pushall.ru\/upimg\/sub24.jpg",         "hidden": 0,         "success": 2,         "unfilt": 1,         "all": 1,         "poststat": {             "waiting": 0,             "waitingu": 0,             "accepted": 2,             "acceptedu": 1,             "opened": 0,             "openedu": 0,             "deleted": 0,             "deletedu": 0         }     }, {         "id": 13219,         "title": 123,         "text": "",         "url": "http:\/\/habr.ru",         "icon": "https:\/\/pushall.ru\/upimg\/sub24.jpg",         "hidden": 0,         "success": 2,         "unfilt": 1,         "all": 1,         "poststat": {             "waiting": 0,             "waitingu": 0,             "accepted": 4,             "acceptedu": 1,             "opened": 2,             "openedu": 1,             "deleted": 0,             "deletedu": 0         }     }, {         "id": 10734,         "title": 1234,         "text": "",         "url": "",         "icon": "https:\/\/pushall.ru\/upimg\/sub24.jpg",         "hidden": 0,         "success": 4,         "unfilt": 1,         "all": 1,         "poststat": {             "waiting": 0,             "waitingu": 0,             "accepted": 4,             "acceptedu": 1,             "opened": 1,             "openedu": 1,             "deleted": 2,             "deletedu": 0         } ... ... 

Вам будут переданы все данные уведомлений в массиве data. При этом вы получаете доступ к дополнительному полю «poststat»
Это и есть та самая статистика. Описание полей:

  • «waiting»: ожидающие приема устройства
  • «waitingu»: ожидающие приема пользователи
  • «accepted»: устройства, которые приняли уведомление
  • «acceptedu»: пользователи, которые приняли уведомление
  • «opened»: устройства, которые открыли уведомление
  • «openedu»: пользователи, которые открыли уведомление
  • «deleted»: устройства, которые открыли уведомление
  • «deletedu»: пользователи, которые удалили уведомление

Также нужно учитывать небольшой факт: эти числа это минимум, а не точная информация. Дело в том, что уведомление можно протиснуться даже через самый нестабильный канал связи. При этом подтверждение доставки или открытия может уже не дойти до сервера. Еще примерно 44 человека до сих пор не обновили приложение на последнюю версию с поддержкой статистики.

Для запроса единичного уведомления, или уведомления отправленного через unicast api, необходимо передать параметр lid с ID-уведомления.
Про работу unicast и интеграцию со сторонними сервисами я описывал в одной из предыдущих статей.

Другие небольшие изменения

Наконец-то можно скрывать-открывать тот или иной канал после его создания. Теперь можно протестировать работу и опубликовать канал, после того как он будет настроен.

Обновлен дизайн главной страницы, теперь более красивые кнопки, обновлен текст главной страницы и вставлены уточняющие изображения.

Исправлено множество мелких ошибок API.

ссылка на оригинал статьи http://habrahabr.ru/post/261239/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *