Меню Закрыть

Oauth vk com access token

Для доступа к API ВКонтакте с Вашего сайта предусмотрен механизм серверной авторизации на базе протокола OAuth 2.0. Этот метод позволяет реализовать безопасную аутентификацию пользователей на Вашем сайте через ВКонтакте и получить доступ к API с сервера Вашего приложения.

Процесс авторизации сайта состоит из 4-х шагов:

  1. Открытие окна браузера для аутентификации пользователя на сайте ВКонтакте.
  2. Разрешение пользователем доступа к своим данным.
  3. Передача сайту значения code для получения ключа доступа.
  4. Получение сервером приложения ключа доступа access_token для доступа к API ВКонтакте.

Для авторизации пользователя необходимо перенаправить его браузер по адресу:
https://oauth.vk.com/authorize, передав следующие параметры:

client_id Обязательно Идентификатор Вашего приложения.
redirect_uri Обязательно Адрес, на который будет переадресован пользователь после прохождения авторизации (домен указанного адреса должен соответствовать основному домену в настройках приложения и перечисленным значениям в списке доверенных redirect uri — адреса сравниваются вплоть до path-части).
display Обязательно Указывает тип отображения страницы авторизации. Поддерживаются следующие варианты:

  • page — форма авторизации в отдельном окне;
  • popup — всплывающее окно;
  • mobile — авторизация для мобильных устройств (без использования Javascript)

Если пользователь авторизуется с мобильного устройства, будет использован тип mobile.

scope Битовая маска настроек доступа приложения, которые необходимо проверить при авторизации пользователя и запросить, в случае отсутствия необходимых.
response_type Тип ответа, который Вы хотите получить. Укажите code, чтобы осуществлять запросы со стороннего сервера.
v Версия API, которую Вы используете. Актуальная версия: 5.103.
state Произвольная строка, которая будет возвращена вместе с результатом авторизации.

Пример запроса:

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

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

Параметр code может быть использован в течение 1 часа для получения ключа доступа к API access_token с Вашего сервера.

В случае возникновения ошибки браузер пользователя будет перенаправлен с кодом и описанием ошибки:

Для получения access_token необходимо выполнить запрос с Вашего сервера на https://oauth.vk.com/access_token, передав следующие параметры:

client_id Обязательно Идентификатор Вашего приложения
client_secret Обязательно Защищенный ключ Вашего приложения (указан в настройках приложения)
redirect_uri Обязательно URL, который использовался при получении code на первом этапе авторизации. Должен быть аналогичен переданному при авторизации.
code Обязательно Временный код, полученный после прохождения авторизации.

Пример запроса:

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

Если у пользователя указан email, а приложением были запрошены соответствующие права, сервер также вернет email пользователя.

В случае ошибки будут переданы параметры error и error_description.

Выберите приложение

Инструкция

  1. Выберите приложение
  2. Нажмите на него
  3. Затем нажмите "разрешить"
  4. Скопируйте часть адресной строки от access_token= до &expires_in

Настройки

ID сообщества (через запятую, если их несколько)

Права [ снять все ]

Не убирайте право "Доступ в любое время", если планируете использовать токен с другого IP адреса, например на хостинге

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

Актуальный список прав доступа здесь: Права доступа приложения

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

В API ВКонтакте для получения ключа доступа используется открытый протокол OAuth 2.0. При этом пользователь не передает логин и пароль приложению, поэтому его аккаунт не может быть скомпрометирован.

Мы поддерживаем три способа получения ключа доступа по OAuth 2.0:

1. Implicit flow — самый короткий и простой вариант. Ключ возвращается на устройство пользователя, где был открыт диалог авторизации (в виде дополнительного параметра URL). Такой ключ может быть использован только для запросов непосредственно с устройства пользователя (например, для выполнения вызовов из Javascript на веб-сайте или из мобильного приложения).

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

3. Client credentials flow — авторизация по секретному ключу приложения. Этот подход необходимо использовать только для доступа к специальным secure-методам.

Такой ключ требуется для работы со всеми методами нашего API, за исключением методов секции secure.

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

Получить ключ доступа пользователя можно одним из этих способов:

  • Implicit flow. Для работы с API от имени пользователя в Javascript-приложениях и Standalone-клиентах (десктопных или мобильных).
  • Authorization code flow. Для работы с API от имени пользователя с серверной стороны Вашего сайта.

В iFrame и Flash-приложениях ключ доступа передается при запуске с остальными параметрами, Вам не нужно самостоятельно реализовывать работу с OAuth.

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

С ключом доступа сообщества можно вызывать те методы, которые имеют специальную пометку в общем списке.

Получить ключ доступа сообщества можно одним из этих способов:

  • Implicit flow. Для работы с API от имени сообщества в Javascript-приложениях и Standalone-клиентах (десктопных или мобильных).
  • Authorization code flow. Для работы с API от имени сообщества с серверной стороны Вашего сайта.
  • В интерфейсе настроек сообщества. Для этого достаточно открыть раздел «Управление сообществом» («Управление страницей», если у Вас публичная страница), выбрать вкладку «Работа с API» и нажать «Создать ключ доступа».

Сервисный ключ нужен для запросов, которые не требуют авторизации пользователя или сообщества. Это такие методы, как secure.sendNotification для отправки уведомлений от приложения, или secure.addAppEvent для добавления информации о достижениях, а также, начиная с апреля 2017 года, открытые методы, например, users.get.

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

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

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

Документация о старой схеме получения сервисного ключа доступа доступна на этой странице: Client credentials flow.

Читайте также:  Где найти настройки вай фай на компьютере

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.