У вас есть сообщество вконтакте? Бывает ли такое, что кто то написал негативный комментарий, кого-нибудь оскорбил, или просто написал отзыв о вашей компании или вопрос на который необходимо быстро ответить? Мы в PushAll написали микросервис, который позволяет получать уведомления о различных событиях в ваших сообществах. Дело в том, что Вконтакте недавно выкатил Callback API для сообществ, и мы решили им воспользоваться облачив из API в формат push-уведомлений.

Если лень читать и хочется сразу использовать — AdminVK (полностью бесплатно, неограниченное количество подключаемых групп и сообществ)



Как этим пользоваться?




Нужно просто подписаться на канал микросервиса и следовать инструкциям

Вы прописываете адрес микросервиса в специальном разделе в настройках вашей группы, а в настройках микросервиса прописываете код, который нужно вконтакте для проверки. Также вы должны пройти авторизация через OAuth VK для того, чтобы микросервис мог получать данные о пользователях — аватарки и имена.



После этого вам будут приходить все уведомления, которые вы укажите в разделе «Типы событий»



При этом нужно понимать, что еще не все типы событий поддерживаются:
  • Сообщения
  • Комментарии
  • Записи
  • Выход/Вход в сообщество
  • Обсуждения

Эти типы приходят с аватаркой и именем пользователя пользователя, который инициировал событие, с названием события и самим событием.



Остальные типы, на данный момент приходят в виде «Неподдерживаемое уведомление» и передают весь JSON, который отдает вконтакте. В течении недели они будут доделаны.

Куда будет приходить уведомления?


Для тех, кто не в курсе, куда отправляет уведомления PushAll:
  • Android-приложение
  • Chrome-дополнение с историей
  • Веб-пуши в хром (Android+PC), яндекс браузер, vivaldi, firefox, Safari
  • Telegram-бот
  • Email
  • iOS (бета-версия)

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

Безопасность


Вконтакте подошли основательно к безопасности — скрипт получает только те данные, которые вы укажите, при этом нет никакого доступа на управление. Предоставление доступа к API, которое нужно для аватарок и имен пользователя запрашивает только разрешение offline, при этом даже не запрашивается email пользователя.

Ограничения


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

При этом сейчас нет никакой фильтрации — то есть все что вы укажите в ВК то и придет вам пушами. В дальнейшем подрузамевается:
  • Сделать возможность передачи JSON другому скрипту, то есть вы сможете использовать AdminVK как прокси, получать уведомления, а передавать запрос дальше в ваш скрипт сбора аналитики или куда либо еще
  • Сделать возможность указать доверенные ID пользователей и ID пользователей, которые должны получать уведомления. Т.е. вы сможете расшарить, как администратор, свои пуши на ваших модераторов
  • Фильтрация по словам. Например получать не все пуши, а лишь те, что содержат названия определенных брендов — с одной стороны упоминание бренда не является поводом для бана, но тут уже зависит от контекста
  • Распределение уведомлений между модераторами, т.е. исходя из второго пунта, можно будет равномерно распределить приходящие уведомления для уменьшения нагрузки на людей


Зачем нам это?


По сути это «proof-of-concept», то есть этот микросервис создан, чтобы показать, как можно использовать возможности PushAll для небольших сервисов связанных с уведомлениями. Например, у меня ушло около 1 часа на написание всего микросервиса для готовности в работе в виде первой альфы, при этом используется по сути стандартное PushAll API и любой может также написать свой микросервис, который сможет отправлять пользователям уведомления по различным событиям на множество платформ.

Это лишь первый микросервис из многих, которые мы будем делать потом.

Тем кто дочитал до конца напоминаю ссылку для подписки: AdminVK

PS.


Добавлена поддержка фото, видео, аудио, сообщения. Везде где нужно показываются либо превью, либо аватарка пользователя, показывает тот кто выложил контент, а при клике ссылки ведут на сам контент. Причем выяснилось, что вконтакте можно давать прямую ссылку на аудио, при переходе на которую сразу идет воспроизведение (это вообще законно? :) )

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


  1. cjmaxik
    24.04.2016 15:35

    Callback API уже корректно работает? У меня постоянно шлет одни и те же события, причем вне зависимости от выбранных в настройках.


    1. BupycNet
      24.04.2016 17:36

      А вы ему отдаете валидный ответ ok? Если идет невалидный ответ он пытается отправить снова и снова.


      1. cjmaxik
        24.04.2016 17:42

        А, теперь понял.
        Проверочная строка проверяется только один раз, а потом на все запросы нужно отвечать «ок»?


        1. BupycNet
          24.04.2016 17:49

          Да именно так, мы так и делаем — проверяем, если ВК нужна проверка — отдаем ключ пользователя, если не нужна — идем проверяем какой передан тип и дальше обрабатываем и формируем пуш.


          1. cjmaxik
            24.04.2016 17:50

            Спасибо :)


  1. stepchuk
    25.04.2016 20:48

    После нажатия на кнопку интеграции и разрешения Вконтакте — {«error»:«invalid_request»,«error_description»:«Security Error»}


    1. BupycNet
      25.04.2016 21:23

      Не сразу понял о чём вы (поправил комментарий) сейчас проверю интеграцию. Вообще такая ошибка вроде была у меня когда 2 раза по одному коду переходил. Попробуйте снова нажать чуть позже.


    1. BupycNet
      25.04.2016 21:28

      Только что проверил — интеграция работает. Ошибка что у вас может возникнуть в 3 ситуациях
      — Обновили страницу с кодом в параметре. Т.е. код уже не валидный.
      — Запретили доступ
      — Была какая то проблема на стороне вк и сейчас все работает или заработает позже.


      1. stepchuk
        25.04.2016 22:03

        — не обновлял
        — не запрещал, разрешил
        — сейчас всё та же ошибка
        Может это из-за того что у меня включена двухфакторная авторизация?


        1. BupycNet
          25.04.2016 23:27

          У меня тоже включена. Все работает. С другими приложениями нет проблем? Советую обратиться в поддержку вконтакте т.к. там похоже как раз проблема с вашим аккаунтом и авторизацией в приложениях.

          PS. Вдвойне странно что пропала. У меня же включена и работает на сайтах все. Думаю стоит в поддержку обратиться.


          1. stepchuk
            25.04.2016 23:48

            С остальными приложениями всё ок


      1. stepchuk
        25.04.2016 23:06

        Отключил двухфакторную и ошибка пропала…


  1. Angel2S2
    26.04.2016 10:47

    Постоянно получаю ошибку «Сервер вернул неправильный ответ» на шаге подтверждения «Адрес Вашего сервера». Хотя делаю все по инструкции. Что может быть?


    1. BupycNet
      26.04.2016 12:47
      +1

      Обычно справа там есть кнопка «Ответ», которая показывает какой именно вернулся ответ. Напишите мне в ЛС что приходит.
      Если у кого нить еще такие проблемы будут — делайте также.
      Чаще всего путают код (пишут не то что должен вернуть сервер, а то что отправляет ВК) или пишут лишний пробел, кто то вообще пытается туда просто название группы написать.


      1. Angel2S2
        26.04.2016 13:01

        Олег, спасибо за ответ. Только сейчас понял, что не правильно делал. Я в поле «Проверочный код» на https://pushall.ru/channels/vk/register.php вводил свой API ключ. Поэтому и получал ошибку. А там надо вводить «Строка, которую должен вернуть сервер» из «Управление сообществом» -> «Работа с API» -> «Callback API».
        Еще раз спасибо ))


  1. utkorose
    27.04.2016 22:02

    подключил одно сообщество. работает. Вопрос — а если два подключить, будет ли писать, куда именно вступил человек? в какое из сообществ?


    1. BupycNet
      27.04.2016 22:57

      Не будет, но можно сделать. Тут еще интерсная ведь — нам без разницы сколько у вас сообществ т.к. мы даже за этим не следим. По факту мы пушим все события по вашему урлу, а сколько подключите тут уже ваше дело.
      Я дусюа название сообщества добавить чуть позже. Как бы вы хотели, чтобы это выглядело?
      Например:
      Присоединился к %название сообщества%
      А в тексте как секцчас имя и фамилия.
      Там с этим то проще всего — вот вроде комментариев там мало места чтобы про сообщество написать. Можно в заголовок но мало какие устройства это покажут.


      1. utkorose
        28.04.2016 02:31

        как это будет выглядеть — не важно. Главное, если уж есть возможность подключаться к нескольким сообществам. В случае с комментарием ссылка на него выводится в телеграм, где тестирую. Перехожу к комментарию по ссылке и всё понятно.


        1. BupycNet
          28.04.2016 21:41

          Сделал для всех событий название группы в пуше.