Pull to refresh
34.08
PushAll
Платформа подписки на Push-уведомления

Отслеживаем состояние Push-уведомлений и новости проекта + UPD RSS

Reading time4 min
Views5.5K
За последние несколько дней в 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.

PS. Забыл сказать про RSS. Теперь бот многопоточен, всвязи с этим снизил время обновления в 2 раза. То есть при 500 подписчиках время обновления теперь 30 секунд минимальное.
Tags:
Hubs:
+4
Comments6

Articles

Change theme settings

Information

Website
pushall.ru
Registered
Founded
Employees
2–10 employees
Location
Россия