Implicit Flow для получения ключа доступа сообщества
Используйте Implicit Flow для вызова методов API ВКонтакте непосредственно с устройства пользователя (например, из Javascript).
Получение списка администрируемых сообществ
Получить ключ доступа сообщества через OAuth может только его администратор. Чтобы получить ключи доступа сразу для всех или нескольких сообществ пользователя, мы рекомендуем добавить этот дополнительный шаг в процесс авторизации.
Получите ключ доступа пользователя (для работы с клиента или для работы с сервера) с правами scope
=groups
и сделайте запрос к методу groups.get с параметром filter
=admin
, чтобы получить список идентификаторов администрируемых сообществ.
Затем используйте все полученные значения или их часть в качестве параметра group_ids
.
Открытие диалога авторизации
Перед открытием диалога авторизации мы рекомендуем убедиться, что пользователь является администратором сообщества, для которого необходимо получить ключ доступа
Необходимо перенаправить браузер пользователя по адресу
https://oauth.vk.com/authorize
, передав следующие параметры:
- •
client_id
(обязательный) — идентификатор вашего приложения. - •
redirect_uri
(обязательный) — адрес, на который будет переадресован пользователь после прохождения авторизации. - •
group_ids
(обязательный) — идентификаторы сообществ, для которых необходимо получить ключ доступа. Параметр должен представлять собой строку, содержащую значения без знака «минус», разделенные запятой. - •
display
— указывает тип отображения страницы авторизации. Поддерживаются следующие варианты:- •
page
— форма авторизации в отдельном окне; - •
popup
— всплывающее окно; - •
mobile
— авторизация для мобильных устройств (без использования Javascript)
- •
Если пользователь авторизуется с мобильного устройства, будет использован тип mobile
.
- •
scope
— битовая маска настроек доступа приложения, которые необходимо проверить при авторизации и запросить отсутствующие. Сейчас доступны:manage
,messages
,photos
,docs
. - •
response_type
— тип ответа, который необходимо получить. Укажитеtoken
. - •
- •
state
— произвольная строка, которая будет возвращена вместе с результатом авторизации.
Пример запроса:
https://oauth.vk.com/authorize?client_id=1&group_ids=1,123456&display=page&redirect_uri=http://example.com/callback&scope=messages&response_type=token&v=5.131
Разрешение прав доступа
После успешного входа на сайт пользователю будет предложено авторизовать приложение, разрешив доступ к необходимым настройкам, запрошенным при помощи параметра scope
. Полный список настроек доступен в разделе прав доступа приложений.
Сейчас для ключей сообщества приложение любого типа может запрашивать права manage
,messages
,photos
,docs
. Методы, доступные с ключом доступа сообщества, помечены в общем списке специальным значком.
Получение access_token
После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу redirect_uri
, указанному при открытии диалога авторизации. При этом ключ доступа к API access_token
и другие параметры будут переданы в URL-фрагменте ссылки:
http://REDIRECT_URI#access_token_XXXXXX= 533bacf01e11f55b536a565b57531ad114461ae8736d6506a3&expires_in=86400
Здесь XXXXXX
— идентификатор сообщества, для которого был запрошен ключ доступа.
В случае возникновения ошибки авторизации в качестве GET
-параметров в redirect_uri
будет передана информация об этой ошибке.
http://REDIRECT_URI#error=access_denied&error_description=The+user+or+authorization+server+denied+the+request.