Remkomplekty.ru

IT Новости из мира ПК
10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Api access key vk

API VK – Получаем ключ доступа (token) группы

Ключи доступа используются для обращения к API ВКонтакте от имени сообщества. К примеру, мы хотим отправить сообщение от лица сообщества в ВК и для этого нам необходим так называемый токен. В данной статье пойдёт речь о том, как получить данный ключ.

Получаем ключ доступа (token) сообщества/группы

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

Для начала нам необходимо зайти в нашу группу, и выбрать пункт “Управление”.

Далее, нам необходимо выбрать пункт “Настройки” -> “Работа с API”

Тут мы уже нажимаем кнопку . И нам предложат выбрать необходимые права для нового ключа доступа. В нашем случае понадобиться пункт “Разрешить приложению доступ к сообщениям сообщества”.

Возможно дальше нам предложат получить код на телефон, для подтверждения наших действий. Подтверждаем кодом или push-уведомлением. И получаем наш ключ доступа

Далее нам необходимо включить сообщения в сообществе, если этого не было сделано ранее. Выбираем пункт сообщения и меняем значения пункта “Сообщения сообщества” на “Включены”.

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

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

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

Пример использование токена сообщества ВК для отправки сообщения:

Используется метод API VK “messages.send” и его параметры.

message – сообщение

peer_id – ID чата (бота с пользователем)

v – версия используемого API VK

access_token – наш ключ доступа сообщества/группы

Как получить access_token Вконтакте

В последнее время появляется огромное количество онлайн-сервисов, компьютерных или мобильных приложений, скриптов, которые предназначены для ВКонтакте, но для их работы необходимо пройти авторизацию через access_token.

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

Краткая инструкция для получения токена сообщества

Заходим в настройки сообщества. (если у вас нет сообщества, значит его необходимо создать):

1. Работа с Api > 2. Получить ключ > 3. Скопируйте его (это ключ (токен) и есть access_token сообщества)

Вот и всё. А если же вам нужен токен пользователя, тогда вся необходимая информация находится ниже в статье.

Получить токен через приложение:

Где взять access_token?

Сегодня мы разберем то, как авторизоваться в ВКонтакте, используя прямую ссылку API ВКонтакте (на базе протокола OAuth) или, как его еще называют, Implicit flow. Авторизация, если вы используете этот метод, производится через приложение Вк, которое указывается как ID. Сегодня такой метод считается самым безопасным. Вы можете натолкнуться на статьи, в которых рассказывается о методах получения access_token с использованием приложений, которые вызывают (и не зря!) подозрение. Но сегодня мы поговорим о том, как авторизоваться через официальные приложения ВКонтакте.

Секрет получения токена – в переходе по ссылке, в которой содержится ID определенного приложения ВКонтакте.

Ссылка может быть следующего вида:

https://oauth.vk.com/authorize?client_id=ID_ПРИЛОЖЕНИЯ&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

Если с этим разобрались, закономерно всплывает следующий вопрос: где взять эту самую ссылку?

Далее я расскажу о двух основных методах, которые позволят получить токен:

✅ Получение токена через собственное приложение.

  • С использованием собственного приложения. Этот метод заведомо рассчитан на то, что у вас есть приложение собственной разработки. Если у вас его нет – самое время создать. Сделать это очень легко: достаточно перейти по ссылке vk.com/apps?act=manage и кликнуть на «Создать приложение».

Система попросит ввести название для приложения. Как пример, можете использовать «Получение access_token». Проверьте, если ли галочка «Standalone-приложение». Далее нажимайте на «Подключить приложение».

Чтобы подтвердить приложение, надо будет ввести код, который вам придет на указанный номер телефона. На этом этапе создания приложения можно зафиксировать мобильное устройство к странице Вк. Чтобы это сделать, надо кликнуть на «Привязать устройство». Можно и без привязки к аккаунту. Тогда просто необходимо перейти по ссылке «Подтвердить через SMS».

После того, как вы подтвердите регистрацию, откроется страница, на которой изложена информация о приложении, которое было создано. Нажмите на «Настройки», которые расположены в левом углу. Там расположен client_id – ID приложения ВКонтакте.

ID необходимо скопировать. Далее – вставьте в ссылку, заменив ID_ПРИЛОЖЕНИЯ. Получится как-то так:

https://oauth.vk.com/authorize?client_id=5563738&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

5563738 – это ID приложения, которое вы создали. У вас получится похожая комбинация. После того как создали приложение перейдем к самому вопросу как получить access_token.

Получение токена через официальное приложение VK.

Метод отличается от того, который был описан ранее, лишь тем, что вам не нужно создавать собственное приложение. Используйте уже созданное. Ему можно стопроцентно доверять.

Метод будет рассматривать на примере ВКонтакте для Android. ID такой: 2890984. Именно эту комбинацию надо подставить в ссылку.

https://oauth.vk.com/authorize?client_id=2890984&scope=notify,photos,friends,audio,video,notes,pages,docs,status,questions,offers,wall,groups,messages,notifications,stats,ads,offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

На этом заканчивается часть статьи, в которой мы рассмотрели варианты идентификации приложения, которые могут быть использованы для авторизации. Осталось коснуться всего лишь нескольких моментов:

✅ Права доступа:

  • В примерах, которые описаны выше, параметр scope содержит многие названия разделов социальной сети ВКонтакте: audio, photos, notify, friends. Это те разделы, которые будут открыты для приложения. Аccess_token может быть использован по-разному. ID, который вы используете, принадлежит доверенному приложению. Именно поэтому вы можете создать access_token, у которого есть все права доступа. Он становится универсальным, так что может быть использован везде.

✅ access_token:

Последний вопрос, которого надо коснуться, так это то, как получить непосредственно сам ключ access_token. После того, как вы получите ссылку (использовав один из методов), надо будет перейти по ней, чтобы открыть право доступа.

Читать еще:  Как делать запросы в access 2020

Уже после этого в вашей адресной строке появится необходимый ключ. Он копируется вручную: после access_token= и перед &expires_in.

Ну и закончить стоит несколькими советами:

  • Не передавайте ключ access_token посторонним лицам.
  • Не стоит проходить авторизацию с использованием приложений, которые не вызывают доверия. Рекомендуется использовать только собственные или официальные.
  • Удалите ключ после того, как вы его использовали. Если понадобится, вы всегда сможете создать новый.
  • Все активные сеансы стоит завершить после того, как в них исчезнет необходимость. Это вы можете сделать через настройки безопасности аккаунта.

VK API. Авторизация для сайта

Для того, чтобы не писать сильно большую статью я сократил код лишь до необходимого минимума. Т.е. никаких проверок, мощных фильтров на ошибки и прочего. Только то, что непосредственно необходимо для авторизации, для понимания происходящего. Так же, статья рассчитана, что вы обладаете хотя-бы базовыми знаниями PHP и HTML. Подробно будут описаны только функции и приёмы которые очень редко встречаются.

Перед тем, как начать, хочу немного объяснить алгоритм.

  1. Создаём приложение на офф сайте вк
  2. Получаем его ID
  3. Делаем на сайте ссылку, в которой отправляем запрос вк-серверу
  4. Получаем code в ответ
  5. Делаем ещё один запрос, в котором вставляем ид приложения, защищенный ключ и как раз этот code
  6. Получаем access_token, нужный для дальнейшего использования API. С этого момента можно считать, что пользователь авторизован. Неверному пользователю токен не дают
  7. .
  8. профит. 11

Для начала нужно создать «приложение». Это можно сделать вот здесь: https://vk.com/editapp?act=create

Всё просто. Ставим тычинку напротив веб-сайта и заполняем инфу.
Да, серьёзно, локальные хосты (localhost) тоже можно указывать и они работают вполне исправно.

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

Следующим шагом можно приступить к части кода. Я создам новый файл с ссылкой, пускай это будет authreg.php . Так же, я создам другой файл, который будет обрабатывать всё остальное. Назову его auth_vk.php .

Открываем authreg.php . В нём будет лежать просто ссылка.

Всё. Этот файл более нам не понадобится.

В этом примере я сохраню всё авторизационные данные в сессии. Вы же можете сделать иначе.
Первым делом я открою небольшое условие на проверку пришедшего к нам в GET от сервера ВК значения code.
Следом мы отправим серверу ВК пришедшее значение code + защищенный ключ и id приложения чтобы получить access_token , а так же сразу его используем, получив имя и фамилию того, кто у нас нажал на кнопку. Запишем в сессию весь результат и отправим пользователя на другую страницу сайта. На практике я бы порекомендовал доработать этот скрипт и записать нового пользователя в бд и так далее.

Для того чтобы вызвать метод API ВКонтакте, Вам необходимо осуществить POST или GET запрос по протоколу HTTPS на указанный URL:

METHOD_NAME – название метода из списка функций API,
PARAMETERS – параметры соответствующего метода API,
ACCESS_TOKEN – ключ доступа, полученный в результате успешной авторизации приложения.

(с) Из официальной документации

Функция file_get_contents здесь используется для того, чтобы получить ответ от GET в php без перезагрузки страницы. Сразу в переменную. Удобно.
Функция json_decode позволяет декодировать JSON-строки.

JSON-строки выглядят примерно вот так:

В переменную fields можно добавить ещё другие вещи, которые позволяет использовать данный метод. С именем и фамилией можно получить так же аватарку, онлайн, город, пол и многое другое.
Подробнее про метод users.get : https://vk.com/dev/users.get
Подробнее про параметр fields : https://vk.com/dev/fields

Собственно, всё. Авторизация уже совершена. Тем не менее, для того чтобы удостовериться в том, что всё как надо, предлагаю ещё создать mypage.php , туда мы отправляемся в конце скрипта и для проверки выведем на экран там всё из сессий, что мы получили.
Содержимое mypage.php:

Набросал на скорую руку. При каких-то ошибках или вдруг потребуются подробности — пишите в этой теме, отвечу как только смогу.

Как сделать кнопки быстрых ответов(keyboard) для ботов в ВК

Недавно Вконтакте опубликовала новый функционал для ботов ВК — кнопки быстрых ответов или же keyboard.

ВАЖНО! Более свежая версия статьи находится здесь

Наша команда «ботописцев» сразу заинтересовалась этим нововведением и начала изучать официальную API, чтобы рассказать вам и показать подробную инструкцию по созданию бота использующего keyboard. В ходе этой статьи получится бот, посмотреть работу которого вы можете в нашей группе GameTips в ВК. Так же вы можете присоединиться к беседе-комьюнити в вк, где вам могут помочь с возникшей проблемой.

Оглавление:

  1. Создание и настройка сообщества
  2. Настройка сервера
  3. Как работает Callback API и keyboard
  4. Работа с библиотекой
  5. Полный код бота
  6. Поехали!
  7. FAQ

Создание и настройка сообщества

После создания сообщества в ВК проследуйте по этому пути:
«Управление сообществом» →«Сообщения» и включите диалоги сообщества. Теперь в подменю «Настройки для бота» включите «Возможности ботов» и кнопку «Начать».

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

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

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

Читать еще:  Бд субд access

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

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

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

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

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

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

Для работы бота мы используем самописную библиотеку на 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.

Теперь вы знаете как работает код, и можете подстроить его под себя.

Стартуем!

Заливайте свой скрипт и библиотеку на сервер. Теперь заходим в настройках во вкладку Callback API, вписываем в поле адреса путь до своего скрипта и жмем подтвердить. Если вы все сделали правильно, то рядом с адресом появится зеленая галочка.

Вопрос: Вообще ничего не работает!
Ответ: Значит где-то накосячили. Перечитайте еще раз внимательно статью, и проверьте, все ли вы сделали. Любой шаг влево может привести к ошибке…

Вопрос: У меня все работает, но не отправляются картинки.
Ответ: Проверьте, добавили ли вы папку img с изобажениями. Так же, возможно вы используете сервер, где не поддерживается cURL.

Вопрос: Я изменил версию на 5.78 или любую другую. У меня ничего не работает.
Ответ: Используйте другие версии api кроме 5.80 на свой страх и риск. Например на версии 5.78 от ВК приходят другие названия переменных(например вместо object->text идет object->body), поэтому скрипт крашится. Все изменения api ищите здесь.

Вопрос: Бот дублирует сообщения.
Ответ: Ваш скрипт долго выполняется. Проверьте что вы используете функцию sendOK. Если все же проблема не решена, то это может быть косяк функции, она еще находится тестировании.

Вопрос: Не появляется кнопка Начать.
Ответ: Недавно мы тоже столкнулись с такой проблемой. После разговора с поддержкой было отмечено, что это баг ВК, который присутствует в некоторых группах. Если у вас именно эта проблема, то уберите приветственное сообщение в настройках группы, и кнопка появится. Если кнопки еще нет, то вы забыли включить ее в настройках

Вопрос: Как отправить чисто кнопки, без сообщения?
Ответ: API предусматривает отправку кнопок только вместе с каким то сообщением, без него нельзя.

Вопрос: Как мне добавить свой функционал? У меня плохо с программированием…
Ответ: Мы делаем ботов на заказ от 500р, если хотите, то пишите насчет этого в группу ВК.

Остались еще какие-то вопросы? Пишите их нам в группу, обязательно поможем, если связано с примером из статьи или библиотекой.

Ну вот и все, у вас теперь тоже есть бот с клавиатурой

Делитесь этими знаниями с вашими друзьями и не забывайте подписаться на нашу группу ВК, там будет еще много интересного!

Создаем собственного бота VK, подробная инструкция как создать бота VK за 5 минут!


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


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

Далее переходим: Настройки -> Работа с API -> Ключи доступа и создаем ключ со следующими параметрами:
Этого будет достаточно, так как мы будем работать с сообщениями, получаем вот такой большой код (токен)

Читать еще:  Субд access работа с данными

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

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

Бота мы будем писать на PHP.

Для удобства написания кода, я рекомендую скачать Sublime Text, один из лучших редакторов, самое главное удобный и практичный.

Создаем файл с расширением .php, например bot.php
Открываем любым редактором и начинаем писать код.
Вместе с исходником, я положу библиотеку, без нее бот работать не будет, библиотека является публичной, ее можно найти на просторах интернета, создана она очень хорошим человеком, скачать ее можно будет только после регистрации на сайте, требую мало, но оно того стоит
Библиотека упрощает работу с кодом и методами API VK.

Подключаем библиотеку:

Теперь создаем константы, они нужны для удобства


Их нужно заполнить. в кавычках вставляем тот самый длинный код (токен), вторую константу мы пока пропускаем, а в 3 пишем версию API, которую мы будем использовать. Давайте возьмем 5.81. Нам так же нужно указать и ACCESS_KEY его мы берем в сообществе.

В моем случае это: be20ea35 у Вас будет другой, копируем и вставляем во вторую константу. У Вас должно получится вот так:

Продолжаем. Теперь нам нужно создать экземпляр класса работы с api, получить и декодировать JSON пришедший из VK и сообщить VK что мы приняли callback, все это кажется сложным, но на деле все очень просто и понятно.

Получаем следующий код:


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

Теперь можно создать первую команду! Наша команда будет !бот, давайте напишем ее:

Этот код работать не будет, так как мы не создали переменные $id и $message давайте создадим их. Переменные создаем выше строки
if ($data->type == ‘message_new’) <

У нас получается следующий код:

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

Нам понадобиться любой хостинг, на котором будет установлен PHP версии не ниже 5.6, стоимость такого хостинга от 30 рублей и выше, статью о том как работать с хостингом я напишу позже, у меня есть видео ролик по работе с игровым хостингом, скрипт будет работать и там. Видео можете посмотреть ниже

Допустим Вы разобрались с хостингом и готовы установить туда сам скрипт. Заходим на сервер и загружаем туда наш скрипт с ботом VK и библиотеку. Саму библиотеку скачать можно только после регистрации!

Скачиваем архив, туда я так же положил и скрипт, в нем нужно будет заменить лишь токен и строку, которую скрипт возвращает VK и дописать 2 команду при желании, если она Вам будет нужна.


Теперь нужно получить прямую ссылку к скрипту, в моем случае скрипт залит в корень сайта и ссылка выглядит так:

копируем ссылку, у вас будет другая, возможно состоящая даже из IP адреса, если используете игровой сервер или хостинг без домена. Возвращаемся к настройкам бота в сообществе и вставляем ссылку:

Выбираем версию API 5.81, указываем ссылку и подтверждаем, если все сделали правильно, VK сообщит нам об этом

Если сейчас написать боту, он не ответит, так как нам нужно включить тип событий:


Этого будет достаточно, что бы бот начал функционировать и отвечать нам. Давайте это проверим:


Если бот ответил, значит Вы сделали все правильно, если нет, проверьте код еще раз и убедитесь что скрипт работает, проверить можно просто перейдя по ссылке к самому скрипту

Если Вы допустили в коде ошибку, то у Вас появится Ошибка 500, это означает что Вы допустили ошибку в самом коде скрипта:

Данный бот будет работать только с хостингом, запустить с ПК скрипт не получится
(Получится, но это требует особых навыков )

Теперь наш бот отлично функционирует, а значит можно добавлять новые команды, давайте сделаем команду !дата

Создаем переменную $date и записываем в нее текущую дату и время, с помощью PHP функции date(); получаем следующий код

Теперь нам нужно создать саму команду:

Весь исходный код выглядит так:

У нас получилось всего 45 строк кода

Что бы Вы понимали, бот KotOFF и Conference Kot содержит 1761 строку кода! Хотя функционал не самый большой на данный момент.

Давайте проверим работу команды:

Отлично! Все работает. Если данная статья будет интересна, я напишу продолжение и там мы будем создавать новые команды для нашего бота, а пока только вводный курс о создании собственного бота с удобной и очень классной библиотекой, которая помогает упросить код и облегчить работу с методами API. Вместе с Вами учусь и я, ведь я не являюсь программистом и делюсь с вами личным опытом, который я получил совсем недавно.

UPD: Что бы бот отвечал и в беседах нужно заменить частично код, инструкция ниже

Если возникли вопросы или трудности, пишите в комментарии, я с радостью отвечу на них.

На этом у меня все, со временем буду корректировать статью и дополнять ее.

Данный бот отлично подойдет как автоответчик или инструкция (FAQ) для вашего сообщества.

Скачать архив с ботом и библиотекой можно после регистрации на сайте! Регистрация доступна через социальные сети 🙂

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×