Пытаюсь получить токен. Читал документацию, ничего не понял. Что делать?

Токены - это ключи доступа к API. Они используются для авторизации при запросах к API.

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

Как получить

Токен можно получить прямо из браузера. Для этого нужно только перейти по правильной ссылке. Как составить правильную ссылку:

1. Создайте Standalone приложение.

  • redirect_uri указывать не надо т.к. сайт вам не нужен, приложение же клиентское.
  • response_type и display оставьте такими, как в примере.
  • client_id вы получили на втором шаге.
  • v возьмите со страницы с версиями API . Выберите самую свежую.

scope выбирайте в зависимости от методов, которые хотите использовать. Например, для доступа к методу

Социальные сети стали неотъемлемым инструментом продвижения сайтов. Для раскрутку сайта через соц. сети следует создать группу или страничку данного сайта. Набирать подписчиков, выкладывать новости на стену и много чего ещё (это тема отдельной заметки). Многие эти процессы можно автоматизировать используя API (интерфейс прикладного программирования) соответствующей социальной сети. В этой заметке я разберу как подключиться к vk api (вконтакте), как начать работать c вк апи, а так же приведу несколько примеров работы с api вконтакте.

Создание приложения вконтакте

И так приступим. Vk api имеет много методов, но одним из основных их различий является то, что для выполнения запросов к вк апи через некоторые методы требуется специальный ключ доступа - токен (access_token). Получить его можно создав своё приложение. Нам предлагают несколько видов приложений, но я выбираю тип Standalone. Мне его хватает. Для начала создания приложения переходим по ссылке и попадаем в следующее окно.


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


В вкладке настройки мы видим поля с названием ID приложения и защитный ключ. Записываем куда нибудь эти данные. Больше ничего в вкладках я не делал. Состояние приложения оставил в положении отключено. Жмём сохранить настройки. Всё, мы создали приложение вконтакте.

Получение токена (access_token) api вк

Https://oauth.vk.com/authorize?client_id= &display=[вид окна] &redirect_uri=https://oauth.vk.com/blank.html&scope=[права приложения] &response_type=token&v=5.52

  • client_id - ID нашего приложения, полученный раньше.
  • display - вид окна, в котором будет происходить авторизация. Может быть page, popup, touch и wap
  • scope - права доступа нашего приложения относительно данных пользователя. О правах поподробнее ниже.

Права приложения вк относительно заданного пользователя могут задаваться в текстовом и цифровом виде. В текстовом это будет выглядеть так scope=friends,messages,groups . Этой строкой кода мы разрешили приложению vk доступ к друзьям, сообщениям и группам пользователя. Так же права задаются и в цифровом виде. Для каждого правила есть битовая маска и сумма этих масок и будет разрешать приложению определённые действия. Например право friends(+2), messages(+4096), groups(+262144), в итоге сумма битовых масок будет 266242 и код scope=266242 будет аналогом scope=friends,messages,groups . Отдельное внимание хочу уделить праву offline . Установка этого права делает получаемый нами токен бесконечным. Если это право не задать через определённое время токен нужно будет получать снова. Подробнее о правах приложения вк можно почитать здесь . В итоге давайте составим адрес для получения токена приложению с правами доступа к друзьям, сообщениям и группам пользователя, а так же с бессмертным токеном. Id приложения пусть будет 123456. Данный адрес будет выглядеть так:

Https://oauth.vk.com/authorize?client_id=123456&display=page&redirect_uri=https://oauth.vk.com/blank.html& scope=friends,messages,groups,offline&response_type=token&v=5.52


Подтверждаем действие и попадаем на страницу с предупреждением, из адресной строки браузера берём наш полученный токен. Это будет после #access_token= , код expires_in=0 говорит нам что токена (access_token) api вк бессмертный. Соответственно user_id= это id пользователя, для которого мы получили токен.

Зайдём в настройки аккаунта во вкладку настройки приложений и увидим наше приложение.


Теперь у нас всё готово для работы с апи вконтакте.

Примеры работы с api vk

Для работы с api вк я использую язык программирования php. Поэтому и примеры я буду приводить на php. Для того, что бы выполнить какое либо действие, нам нужно послать запрос к api vk. Запрос мы можем послать и через адресную строку браузера. Тоесть запрос это есть определённый урл адрес с заданными в нём определёнными параметрами. Синтаксис составления такого урл описан ниже.

Https://api.vkontakte.ru/ method/[ВЫЗЫВАЕМЫЙ МЕТОД]?[ПАРАМЕТРЫ ВЫЗЫВАЕМОГО МЕТОДА]

Список методов api vk находится здесь .Больше пока заострять на этом внимания не будем, потом на реальных примерах всё станет ясно. Осталось только разобраться как запрос к апи вконтакте отправить средствами php. Для этого будем использовать php функцию file_get_contents , а так же функцию json_decode так как ответ от сервера мы получим в формате json. Вот шаблон выполнения запроса к вк на php.

$result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/[ВЫЗЫВАЕМЫЙ МЕТОД]?[ПАРАМЕТРЫ ВЫЗЫВАЕМОГО МЕТОДА]"));

ну а теперь несколько примеров работы с апи vk

$userid=12345; $mytoken=56789; /*вернёт объект с значениями пола и дня рождения пользователя*/ $request_params = array("user_id" => $userid, "fields" => "sex", "fields" => "bdate"); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); /*проверка пользователя на бан вк*/ $request_params = array("user_id" => $user_id, "fields" => "deactivated"); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); if(isset($result->response->deactivated)){ echo "Страница заморожена или удалена"; } /*отправим сообщение пользователю с user_id=222222*/ $mesage="Привет, как дела?"; //кодируем строку $msg=urlencode($mesage); $result = json_decode(file_get_contents("https://api.vkontakte.ru/method/ messages.send?user_id=222222& message=".$msg."&access_token=".$mytoken)); /*приглосим в друзья пользователя с user_id=222222*/ $mesage="Давайте дружить"; $msg=urlencode($mesage); $result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/friends.adduser_id=222222& text=".$msg."&access_token=".$mytoken));

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

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

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

Как будет проходить процесс

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

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

Ссылка для получения ключа

Вот готовый url адрес. Здесь нас, прежде всего, интересуют данные после знака =. В примере ниже там написано 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=https://api.vk.com/blank.html&display=page&response_type=token

Также обратите внимание на данные, после слова «scope» . Здесь мы перечисляем разделы, к которым ключ откроет доступ. Для того чтобы запретить приложения доступ к разделу с нашими друзьями, уберите из ссылки текст «friends» . Остальное по аналогии.

Теперь осталось только получить ID.

Получаем ID через собственное приложение

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

Https://vk.com/apps?act=manage

И нажмите на кнопку «Создать приложение» .

Укажите название и тип приложения (см. ). Затем нажмите на кнопку «Подключить приложение» .

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

Приложение будет создано. Теперь перейдите на вкладку «Настройки» . Здесь в блоке , будет указан нужный нам набор цифр. Скопируйте его.

Теперь у нас есть все необходимое.

Используем ID официального приложения Вконтакте

Второй способ получения айдишника — это просто взять готовое приложение. И лучше всего — официальное приложение Вконтакте для Android. Его ID — «2890984» . Можете использовать.

Получаем Access_token

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=https://api.vk.com/blank.html&display=page&response_type=token