За последние несколько дней в 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 секунд минимальное.

Комментарии (6)


  1. gluck59
    26.06.2015 18:24

    «Пользуясь случаем, хочу» ©
    Вопрос к маководам:

    OSX 10.10.3
    После каждого клика в пришедший пуш и после каждого посещения pushall.ru вылезает требование «привязать приложение к Pushall». При клике на него Хром открывает страницу на pushall.ru, рапортующую: «чувак ты чо, приложение уже привязано, давай досвиданья!». И редирект на главную.

    Это можно проделывать по кругу без остановки — глупая софтинка все равно будет каждый раз выползать и требовать привязаться. Если на нее не кликать — так и будет вечно висеть и на экране и в доке.

    Что за приложение, откуда оно взялось и почему оно не может запомнить свою привязку — тайна. Разработчик отвечает «у меня все ок, ничо не знаю».

    Коллеги, у вас так же?


    1. BupycNet Автор
      26.06.2015 18:29

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

      Вот если кто под маком отдебажит, почему оно именно возникает. Тогда пофиксю. Ну или мак дать погонять на часок.


      1. Gray_Wolf
        28.06.2015 02:24

        Но есть же VMWare, и патчи для него с возможность развёртывания MacOS.
        Что останавливает вас?..


        1. BupycNet Автор
          28.06.2015 02:58

          То что у меня AMD. Даже под виртуалкой под AMD помнится проблемы есть с установкой. А уж 10.10 я точно не поставлю. Мне кажется проблема там в том. что уведомления идут не в панель хрома, а скорее всего в уведомления макоси. и она как то подругому обрабатывает клики. Эта панель появилась в недавних версих, которые не факт что поставлю. В предыдущий раз у меня ушло на попытку установки старой версии пара дней, т.к. долго качалась. потом не установилась и т.д. Можно конечно попробовать, но мне кажется, что имея аудиторию на канале в 200 айтишников, хотя бы один мог бы через отладку хрома глянуть что там нет так и сообщить мне. В хроме ведь приложения не компилятся, их вроде как можно отлаживать любому пользователю налету.

          И достаточно мало времени у меня, т.к. я один разрабатываю сайт, систему, приложения, весь маркетинг, написание статей и т.д. все на мне, но вообще постараюсь заняться этим вопросом, хотя меня намного больше беспокоит версия под iOS. Мой друг сильно тянет с её разработкой.


          1. gluck59
            29.06.2015 14:37

            Нет. Уведомления макоси — совершенно отдельная фича.
            Выглядит она вот так (сорри, здесь опять не работают картинки):

            habrastorage.org/files/500/853/cc9/500853cc99a44845a3ff4fcc19cbe34e.JPG

            А в вашем случае как будто происходит запуск некой софтинки прямо из браузера.


            1. BupycNet Автор
              29.06.2015 14:40

              А примерно понял в чем может быть дело.
              Там с уведомлениями была одна проблема — часть адресов, которые были на HTTPS не открывались т.к. при открытии нужно действующее окно, при открытии напрямую из пуша — дополнение падало.
              Я на самом деле открываю небольшое окно на пол секунды. Но потом это окно должно закрываться само.
              Напиши мне в вк, или гугл+ скинь скрин как это выглядит.