У вас есть сообщество вконтакте? Бывает ли такое, что кто то написал негативный комментарий, кого-нибудь оскорбил, или просто написал отзыв о вашей компании или вопрос на который необходимо быстро ответить? Мы в PushAll написали микросервис, который позволяет получать уведомления о различных событиях в ваших сообществах. Дело в том, что Вконтакте недавно выкатил Callback API для сообществ, и мы решили им воспользоваться облачив из API в формат push-уведомлений.
Если лень читать и хочется сразу использовать — AdminVK (полностью бесплатно, неограниченное количество подключаемых групп и сообществ)
Как этим пользоваться?
Нужно просто подписаться на канал микросервиса и следовать инструкциям
Вы прописываете адрес микросервиса в специальном разделе в настройках вашей группы, а в настройках микросервиса прописываете код, который нужно вконтакте для проверки. Также вы должны пройти авторизация через OAuth VK для того, чтобы микросервис мог получать данные о пользователях — аватарки и имена.
После этого вам будут приходить все уведомления, которые вы укажите в разделе «Типы событий»
При этом нужно понимать, что еще не все типы событий поддерживаются:
- Сообщения
- Комментарии
- Записи
- Выход/Вход в сообщество
- Обсуждения
Эти типы приходят с аватаркой и именем пользователя пользователя, который инициировал событие, с названием события и самим событием.
Остальные типы, на данный момент приходят в виде «Неподдерживаемое уведомление» и передают весь JSON, который отдает вконтакте. В течении недели они будут доделаны.
Куда будет приходить уведомления?
Для тех, кто не в курсе, куда отправляет уведомления PushAll:
- Android-приложение
- Chrome-дополнение с историей
- Веб-пуши в хром (Android+PC), яндекс браузер, vivaldi, firefox, Safari
- Telegram-бот
- iOS (бета-версия)
Охват устройств и возможностей подключения будет еще увеличиваться.
Безопасность
Вконтакте подошли основательно к безопасности — скрипт получает только те данные, которые вы укажите, при этом нет никакого доступа на управление. Предоставление доступа к API, которое нужно для аватарок и имен пользователя запрашивает только разрешение offline, при этом даже не запрашивается email пользователя.
Ограничения
Микросервис полностью бесплатен. Можно подключать несколько сообществ, если указывать им один и тот же адрес микросервиса, при этом каждый раз меняя в настройках микросервиса проверочный код. То есть вы можете подключить неограниченное количество групп для получения уведомлений.
При этом сейчас нет никакой фильтрации — то есть все что вы укажите в ВК то и придет вам пушами. В дальнейшем подрузамевается:
- Сделать возможность передачи JSON другому скрипту, то есть вы сможете использовать AdminVK как прокси, получать уведомления, а передавать запрос дальше в ваш скрипт сбора аналитики или куда либо еще
- Сделать возможность указать доверенные ID пользователей и ID пользователей, которые должны получать уведомления. Т.е. вы сможете расшарить, как администратор, свои пуши на ваших модераторов
- Фильтрация по словам. Например получать не все пуши, а лишь те, что содержат названия определенных брендов — с одной стороны упоминание бренда не является поводом для бана, но тут уже зависит от контекста
- Распределение уведомлений между модераторами, т.е. исходя из второго пунта, можно будет равномерно распределить приходящие уведомления для уменьшения нагрузки на людей
Зачем нам это?
По сути это «proof-of-concept», то есть этот микросервис создан, чтобы показать, как можно использовать возможности PushAll для небольших сервисов связанных с уведомлениями. Например, у меня ушло около 1 часа на написание всего микросервиса для готовности в работе в виде первой альфы, при этом используется по сути стандартное PushAll API и любой может также написать свой микросервис, который сможет отправлять пользователям уведомления по различным событиям на множество платформ.
Это лишь первый микросервис из многих, которые мы будем делать потом.
Тем кто дочитал до конца напоминаю ссылку для подписки: AdminVK
PS.
Добавлена поддержка фото, видео, аудио, сообщения. Везде где нужно показываются либо превью, либо аватарка пользователя, показывает тот кто выложил контент, а при клике ссылки ведут на сам контент. Причем выяснилось, что вконтакте можно давать прямую ссылку на аудио, при переходе на которую сразу идет воспроизведение (это вообще законно? :) )
Комментарии (19)
stepchuk
25.04.2016 20:48После нажатия на кнопку интеграции и разрешения Вконтакте — {«error»:«invalid_request»,«error_description»:«Security Error»}
BupycNet
25.04.2016 21:23Не сразу понял о чём вы (поправил комментарий) сейчас проверю интеграцию. Вообще такая ошибка вроде была у меня когда 2 раза по одному коду переходил. Попробуйте снова нажать чуть позже.
BupycNet
25.04.2016 21:28Только что проверил — интеграция работает. Ошибка что у вас может возникнуть в 3 ситуациях
— Обновили страницу с кодом в параметре. Т.е. код уже не валидный.
— Запретили доступ
— Была какая то проблема на стороне вк и сейчас все работает или заработает позже.stepchuk
25.04.2016 22:03— не обновлял
— не запрещал, разрешил
— сейчас всё та же ошибка
Может это из-за того что у меня включена двухфакторная авторизация?BupycNet
25.04.2016 23:27У меня тоже включена. Все работает. С другими приложениями нет проблем? Советую обратиться в поддержку вконтакте т.к. там похоже как раз проблема с вашим аккаунтом и авторизацией в приложениях.
PS. Вдвойне странно что пропала. У меня же включена и работает на сайтах все. Думаю стоит в поддержку обратиться.
Angel2S2
26.04.2016 10:47Постоянно получаю ошибку «Сервер вернул неправильный ответ» на шаге подтверждения «Адрес Вашего сервера». Хотя делаю все по инструкции. Что может быть?
BupycNet
26.04.2016 12:47+1Обычно справа там есть кнопка «Ответ», которая показывает какой именно вернулся ответ. Напишите мне в ЛС что приходит.
Если у кого нить еще такие проблемы будут — делайте также.
Чаще всего путают код (пишут не то что должен вернуть сервер, а то что отправляет ВК) или пишут лишний пробел, кто то вообще пытается туда просто название группы написать.Angel2S2
26.04.2016 13:01Олег, спасибо за ответ. Только сейчас понял, что не правильно делал. Я в поле «Проверочный код» на https://pushall.ru/channels/vk/register.php вводил свой API ключ. Поэтому и получал ошибку. А там надо вводить «Строка, которую должен вернуть сервер» из «Управление сообществом» -> «Работа с API» -> «Callback API».
Еще раз спасибо ))
utkorose
27.04.2016 22:02подключил одно сообщество. работает. Вопрос — а если два подключить, будет ли писать, куда именно вступил человек? в какое из сообществ?
BupycNet
27.04.2016 22:57Не будет, но можно сделать. Тут еще интерсная ведь — нам без разницы сколько у вас сообществ т.к. мы даже за этим не следим. По факту мы пушим все события по вашему урлу, а сколько подключите тут уже ваше дело.
Я дусюа название сообщества добавить чуть позже. Как бы вы хотели, чтобы это выглядело?
Например:
Присоединился к %название сообщества%
А в тексте как секцчас имя и фамилия.
Там с этим то проще всего — вот вроде комментариев там мало места чтобы про сообщество написать. Можно в заголовок но мало какие устройства это покажут.utkorose
28.04.2016 02:31как это будет выглядеть — не важно. Главное, если уж есть возможность подключаться к нескольким сообществам. В случае с комментарием ссылка на него выводится в телеграм, где тестирую. Перехожу к комментарию по ссылке и всё понятно.
cjmaxik
Callback API уже корректно работает? У меня постоянно шлет одни и те же события, причем вне зависимости от выбранных в настройках.
BupycNet
А вы ему отдаете валидный ответ ok? Если идет невалидный ответ он пытается отправить снова и снова.
cjmaxik
А, теперь понял.
Проверочная строка проверяется только один раз, а потом на все запросы нужно отвечать «ок»?
BupycNet
Да именно так, мы так и делаем — проверяем, если ВК нужна проверка — отдаем ключ пользователя, если не нужна — идем проверяем какой передан тип и дальше обрабатываем и формируем пуш.
cjmaxik
Спасибо :)