Как настроить смартфоны и ПК. Информационный портал

Что такое api id. Получаем api ID из социальных сетей Вконтакте и Facebook

Сервисы для отслеживания событий в своем сообществе ВК

Сервисы, которые работают через call back api ВК и имеют примерно схожую функциональность: отслеживание комментариев, сообщений в ЛС сообщества, записей на стене сообщества и т.п.

1. Callback Api Bot https://vk.com/cbbot . Пользуюсь им порядка полугода. Бот радует стабильностью, есть возможность подключения менеджеров. Из минусов - все оповещения валятся в одну и ту же личку, если сообществ много - в ней свалка.

2. Модератор - https://vk.com/app5474492 . Приложение удобно сортирует все события по типам, есть настройки разных видов оповещений о событиях, возможность подключения менеджеров. По функциональности это лучшее из имеющихся приложений. Из минусов - это та же команда разработчиков, что и сервис Sexy. Который начал свой вход на рынок с того, что использовал аккаунты своих пользователей без их ведома и согласия. Поэтому отдавать им доступ от ЛС своих сообществ - лично мне как-то стремно.

3. pushall.ru - Это комплексный сервис оповещений, в т.ч. в нем есть и ВК. Есть оповещения на почту и в телеграм, уведомления в браузере на ПК, приложения Андроид и iOS. Хоть и все в кучу, но правилами почты и ботами телеграм их можно разруливать как угодно. Из уникальных фич - сервис может пересылать полученные ответы от ВК другому серверу. Т.е. вы можете подключить несколько приложений, которые используют call back api. При бесплатном использовании можно подключить только 2 сервера.

Поддержка сервиса - он работает, обновляется, но темпы обновления не соответствуют заявленным, по новостям сервиса у меня сложилось впечатление, что энтузиазм разработчиков слегка угас. По словам разработчика - просто сконцентрировались на других функциях сервиса.

4. https://vk.com/callback_api_lite - сервис примечателен тем, что в нем есть подключение сообщества в одну кнопку, т.е. все настройки серверов в сообществе внесутся за вас. Также оповещения от каждого сообщества отправляются вам отдельно - через ЛС этого сообщества. Т.е. у вас в личке будет несколько чатов с вашими сообществами, куда вы будете получать уведомления. Эти 2 фичи делают сервис удобным для владельцев кучи сообществ, когда даже просто подключить call back api им всем - хочется повеситься. Правда, отдельно придется отправить хоть 1 сообщение в ЛС каждого своего сообщества, чтобы дать ему разрешение отправлять вам сообщения. Поддержка и доработка сервиса ведется достаточно активно и очень оперативно - в течение 1-2 дней вносятся доработки. Однако сервис однозначно заявлен как бесплатный, поэтому крутые фичи не планируются.

Из минусов: 1) привязка сообщества к одному аккаунту, с которого вы первым зашли в сервис. Менеджеров подключить не получится. 2) Для подключения в одну кнопку сервис берет доступ к управлению сообществом. 3) Необходимы включенные сообщения сообщества. У меня вот сейчас в работе 63 сообщества по одному из проектов, и эти сообщества почти ежедневно заваливаются спамом в ЛС, причем обязательно все разом и преимущественно поздно вечером - когда работать уже в лом, но оповещения еще не отключены. Не реагировать на спам в ЛС = будет расти срок ответа, который показывается клиентам. Закрыть ЛС = заново подключать все сообщества к другому сервису. Оставить все как есть = вешалка.

5. Гамаюн: https://gmun.pro . Сообщества подключаются в один клик, но в некоторых случаях не с первой попытки - выдается ошибка "нет токена сообщества". Все оповещения валятся в личный кабинет в сервисе в одну кучу. Есть выгрузка статистики в csv - у единственного сервиса из всех - но тоже все в одну кучу по всем сообществам. Есть телеграм и email уведомления. Как и callback api lite - сервис берет доступ к управлению всем сообществом, а не только для оповещений.

6. http://vk-notify.ru . Кто захочет писать свой сервис - вот у них самый удобный интерфейс отображения оповещений. К сожалению, сервис похоже умер. Во всяком случае оповещения не приходят, есть ли у сервиса поддержка - неизвестно.

Здравствуйте дорогие мои читатели блога. Сегодняшнюю статью я хотел бы посвятить получению Api id номера от ВКонтакте. Может кто то спросит, а зачем он вообще нам нужен и чем он полезен блогу?

План сегодняшней статьи не большой

Для чего нужен api id блогу?

Как его получить?

Для чего нужен api id Вконтакте блогу на WordPress.

Api id номер может понадобиться для социальных плагинов. Люди оставляя лайки и комментарии, через кнопки и виджеты вконтакте, должны связаться с сервером, чтобы VK.COM знал, на каком сайте оставляют комментарии или лайки его зарегистрированные пользователи.

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

Как его получить?

Вот и подошли к главному. Как же получить api id Вконтакте?

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

Адресом будет — http://mysite.ru

Базовый домен — mysite.ru

mysite — адрес вашего сайта



После подтверждения номера телефона вы попадёте на страницу с информацией о вашем приложении, нужно нажать вкладку настройки и попадаем на страницу, где и лежит наш api id ВКонтакте.


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

Подписывайтесь на обновления блога, чтобы не пропустить выход новых статей.

С уважением С.Васильев

Писать будем используя Сallback api(отправляет каждое действие в сообществе по отдельности на сервер). Поэтому его тоже следует настроить. Переходим в
«Управление сообществом» →»Работа с API». Для работы бота нужно зарегистрировать ключ доступа. Нажимаете «Создать ключ» и выбираете необходимые права доступа, для этого бота нужны только права на сообщения. Подтверждаем номер телефона и сохраняем куда нибудь ключ доступа. Теперь переходим во вкладку Callback API. Ставим свое название сервера и выбираем последнюю версию API(на данный момент она 5.80, и именно с ней ниже представленный бот будет работать 100%) . Во вкладке «Типы запросов» выбираем только входящие сообщения.

Настройка сервера

Теперь вам понадобится сервер для хостинга своего бота. Вы можете использовать бесплатные хостинги, например 000webhost.

Если вы будете использовать дешевые/бесплатные хостинги, то вероятнее всего на них будет отключен cURL(вы не сможете отправлять ботом медиа файлы, только текст), и его нельзя включить. У 000webhost все с этим нормально, можете использовать. Если у вас свой сервер или хороший купленный, то вам надо подключить cURL для полноценной работы бота из нашего примера.

Как работает Callback API и keyboard

Проведу краткий экскурс как все работает. Сallback API отсылает на ваш сервер любое событие, которое происходит в группе виде JSON. Полный список событий можно посмотреть во вкладке «Сallback API» → «Типы событий». Вот так выглядит JSON запрос когда пользователь отправляет сообщение, в данном случае он нажал на кнопку:

{"type":"message_new","object":{"date":1529668584,"from_id":89846036,"id":1522,"out":1,"peer_id":89846036,"text":"Золотая рыбка","conversation_message_id":305,"fwd_messages":,"important":false,"random_id":0,"attachments":,"payload":"{\"animals\":\"Goldfish\"}","is_hidden":false},"group_id":101461081}

{ "type" : "message_new" , "object" : { "date" : 1529668584 , "from_id" : 89846036 , "id" : 1522 , "out" : 1 , "peer_id" : 89846036 , "text" : "Золотая рыбка" , "conversation_message_id" : 305 , "fwd_messages" : , "important" : false , "random_id" : 0 , "attachments" : , "payload" : "{\"animals\":\"Goldfish\"}" , "is_hidden" : false } , "group_id" : 101461081 }

Тут есть несколько интересных полей, которые можно обработать: id пользователя, текст сообщения(text), полезная нагрузка кнопки(payload).

Отправка сообщений пользователю происходит с помощью метода messages.send . Если вы отправляете клавиатуру, то после всех стандартных параметров вы добавляете параметр keyboard, который содержит json кнопок, вот как он выглядит:

Keyboard: { "one_time": false, "buttons": [ [{ "action": { "type": "text", "payload": "{\"button\": \"1\"}", "label": "Red" }, "color": "negative" }, { "action": { "type": "text", "payload": "{\"button\": \"2\"}", "label": "Green" }, "color": "positive" }]

keyboard : {

"one_time" : false ,

"buttons" : [

"action" : {

"type" : "text" ,

"payload" : "{\"button\": \"1\"}" ,

"label" : "Red"

"color" : "negative"

"action" : {

"type" : "text" ,

"payload" : "{\"button\": \"2\"}" ,

"label" : "Green"

"color" : "positive"

Работа с библиотекой

Для работы бота мы используем самописную библиотеку на PHP. (Если ссылка не работает, то вот архив)вы можете найти документацию к библиотеке и скачать саму библиотеку. Вот короткий листинг готовых функций для написания бота, подробнее ищите по ссылке выше. Если вы хотите узнавать об изменениях в библиотеке, то напишите хотя бы одно сообщение нашему боту в ВК , через него мы будет вас оповещать об изменениях.

$vk = new vk_api(vk_key, version_api) — инициализация бота. Параметры: ключ сообщества(vk_key), версия API(version_api).

sendMessage(id, text) — функция отправки сообщений юзеру. Параметры: id пользователя(id), текст сообщения(text).

sendImage(id, patch) — функция отправки изображений. Параметры: id пользователя(id), путь до изображения(patch).

sendButton(id, text, buttons, one_time) — функция отправки сообщения с кнопками. Параметры: id пользователя(id), текст сообщения(не может быть пустым)(text), массив с кнопками(buttons), не обязательный параметр one_time, по дефолту false, если поставить true, то после нажатия на любую кнопку клавиатура скроется.

request(method, array_arguments) — универсальная функция работы с методами. Параметры: method — название метода из официального api, array_arguments — массив параметров.

sendOK() — Бета функция. Используется вместо echo «ok», помогает в тех случаях, когда время работы скрипта долгое, и бот начинает повторять сообщения по несколько раз.
ВАЖНО: есть использовать эту функцию, то у вас не будет отображаться вывод ошибок. Во время дебага заменяйте на echo «ok»

Полный код бота на PHP

Теперь перейдем собственно к коду, где прокомментирована почти каждая строка.
Данный код поддерживается на PHP 5.6+
В блоке CONFIG укажите свой ключ доступа сообщества, ключ для подтверждения сервера а так же выбранную вами версию API.

Полный код бота

"Fish"], "А какие бывают?", "blue"]; //Код кнопки "Fish" const BTN_BACK = [["command" => "start"], "<< Назад", "red"]; // Код кнопки "<< Назад" const BTN_SALMON = [["animals" => "Pink_salmon"], "Горбуша", "white"]; // Код кнопки "Горбуша" const BTN_GOLDFISH = [["animals" => "Goldfish"], "Золотая рыбка", "blue"]; // Код кнопки "Золотая рыбка" const BTN_PLOTVA = [["animals" => "Plotva"], "Плотва", "green"]; // Код кнопки "Плотва" $vk = new vk_api(VK_KEY, VERSION); // создание экземпляра класса работы с api, принимает ключ и версию api $data = json_decode(file_get_contents("php://input")); //Получает и декодирует JSON пришедший из ВК if ($data->type == "confirmation") { //Если vk запрашивает ключ exit(ACCESS_KEY); //Завершаем скрипт отправкой ключа } $vk->sendOK(); //Говорим vk, что мы приняли callback if (isset($data->type) and $data->type == "message_new") { //Проверяем, если это сообщение от пользователя $id = $data->object->from_id; //Получаем id пользователя, который написал сообщение $message = $data->object->text; if (isset($data->object->peer_id)) $peer_id = $data->object->peer_id; // Получаем peer_id чата, откуда прилитело сообщение else $peer_id = $id; if (isset($data->object->payload)){ //получаем payload $payload = json_decode($data->object->payload, True); } else { $payload = null; } if (isset($payload["command"]) or mb_strtolower($message) == "начать") { //Если нажата кнопка начать или << назад $vk->sendButton($peer_id, "Хочешь посмотреть на рыбок?", []); //Отправляем кнопку пользователю } else { if ($payload != null) { // если payload существует switch ($payload["animals"]) { //Смотрим что в payload кнопках case "Fish": //Если это Fish $vk->sendButton($peer_id, "Вот такие, выбирай", [ //Отправляем кнопки пользователю , ]); break; case "Pink_salmon": //Если это Горбуша $vk->sendMessage($peer_id, "Держи свою горбушу!"); //отправляем сообщение $vk->sendImage($peer_id, "img/pink_salmon.jpg"); //отправляем картинку break; case "Goldfish": //Если это Золотая рыбка $vk->sendMessage($peer_id, "Она исполнит твои желания..."); $vk->sendImage($peer_id, "img/goldfish.jpg"); break; case "Plotva": //Если это Плотва $vk->sendMessage($peer_id, "Ой, похоже картинку перепутали)"); $vk->sendImage($peer_id, "img/plotva.jpg"); break; default: break; } } } } ?>

include "vk_api.php" ; //Подключаем библиотеку для работы с api vk

//**********CONFIG**************

const VK_KEY = "your_key" ; //тот самый длинный ключ доступа сообщества

const ACCESS_KEY = "your_key" ; //например c40b9566, введите свой

const VERSION = "5.80" ; //ваша версия используемого api

//******************************

const BTN_FISH = [ [ "animals" = > "Fish" ] , "А какие бывают?" , "blue" ] ; //Код кнопки "Fish"

const BTN_BACK = [ [ "command" = > "start" ] , "<< Назад" , "red" ] ; // Код кнопки "<< Назад"

const BTN_SALMON = [ [ "animals" = > "Pink_salmon" ] , "Горбуша" , "white" ] ; // Код кнопки "Горбуша"

const BTN_GOLDFISH = [ [ "animals" = > "Goldfish" ] , "Золотая рыбка" , "blue" ] ; // Код кнопки "Золотая рыбка"

const BTN_PLOTVA = [ [ "animals" = > "Plotva" ] , "Плотва" , "green" ] ; // Код кнопки "Плотва"

$vk = new vk_api (VK_KEY , VERSION ) ; // создание экземпляра класса работы с api, принимает ключ и версию api

$data = json_decode (file_get_contents ("php://input" ) ) ; //Получает и декодирует JSON пришедший из ВК

if ($data -> type == "confirmation" ) { //Если vk запрашивает ключ

exit (ACCESS_KEY ) ; //Завершаем скрипт отправкой ключа

$vk -> sendOK () ; //Говорим vk, что мы приняли callback

if (isset ($data -> type ) and $data -> type == "message_new" ) { //Проверяем, если это сообщение от пользователя

$id = $data -> object -> from_id ; //Получаем id пользователя, который написал сообщение

$message = $data -> object -> text ;

if (isset ($data -> object -> peer_id ) )

$peer_id = $data -> object -> peer_id ; // Получаем peer_id чата, откуда прилитело сообщение

else

$peer_id = $id ;

if (isset ($data -> object -> payload ) ) { //получаем payload

$payload = json_decode ($data -> object -> payload , True ) ;

} else {

$payload = null ;

if (isset ($payload [ "command" ] ) or mb_strtolower ($message ) == "начать" ) { //Если нажата кнопка начать или << назад

Вконтакте

Для того, чтобы создать виджет для ВКонтакте, перейдите по ссылке - https://vk.com/dev/sites

На этой стрнице можно создать различные виджеты для взаимодействия возможностей ВК и Вашего сайта.

  1. Сайт\приложение: Если у Вас не подключен сайт в api ВК, то для начала нужно его подключить. Для этого выберите в выпадающем списке "Подключить новый сайт".
  2. Название сайта: Введите любое название.
  1. Адрес сайта - введите адрес подключаемого сайта.
  2. Основной домен сайта - прописывается автоматически.
  3. Тематика сайта - укажите тематику своего сайта.
  4. Количество комментариев - укажите максимальное количество отображаемых комментариев.
  5. Медиа - добавляет в форму комментариев кнопку "Прикрепить".
  6. Ширина - укажите ширину виджета.
  7. Код для вставки - данный код можно вставить в любое желаемое место на Вашем сайте. В нем и хранится уникальный apiID, который используется во многих расширениях Joomla-сайта.

Facebook

Для того, чтобы создать виджет для Facebook, перейдите по ссылке - https://developers.facebook.com/docs/plugins

На этой стрнице можно создать различные виджеты для взаимодействия возможностей Facebook и Вашего сайта.

Пример создания виджета комментариев:

Процес создания такой же, как и для ВК.

Если у Вас не создано приложение, то нужно его создать. Для этого нажмите на пункт меню "Приложения" и выберите "Create a New App".

Display Name: Введите название приложения.

Namespase: Введите уникальный идентификатор (может быть название Вашего сайта).

Нажимаем "Создать приложение", вводим код проверки и переходим непосредственно к созданию виджета.

Width: Укажите ширину виджета.

Number of Posts: Выберите максимальное количество отображаемых комментариев.

Color Scheme: Выберите цветовую схему виджета.

Нажимаем "Get code"

После нажатия, всплывает окно, в котором и хранится api ID.

Если Вам нужно будет быстро и без усилий вставить какой-нибудь виджет на joomla-сайт, прочитайте ЭТУ статью.

P.S. Таким же образом создаются и другие виджеты этих соц-сетей.

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

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


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

Вы прописываете адрес микросервиса в специальном разделе в настройках вашей группы, а в настройках микросервиса прописываете код, который нужно вконтакте для проверки. Также вы должны пройти авторизация через 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 и любой может также написать свой микросервис, который сможет отправлять пользователям уведомления по различным событиям на множество платформ.

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

Лучшие статьи по теме