В последнее время появляется огромное количество онлайн-сервисов, компьютерных или мобильных приложений, скриптов, которые предназначены для ВКонтакте, но для их работы необходимо пройти авторизацию через access_token.
Некоторые сервисы предосталвяют возможности получить ключ доступа, который необходим для авторизации. На это уходит несколько секунд. Но как быть, если вы загрузили скрипт, но необходимого access_token ключа нет?
Где взять access_token?
Сегодня мы разберем то, как авторизоваться в ВКонтакте, используя прямую ссылку API ВКонтакте (на базе протокола OAuth ) или, как его еще называют, Implicit flow . Авторизация, если вы используете этот метод, производится через приложение Вк, которое указывается как ID . Сегодня такой метод считается самым безопасным. Вы можете натолкнуться на статьи, в которых рассказывается о методах получения access_token с использованием приложений, которые вызывают (и не зря!) подозрение. Но сегодня мы поговорим о том, как авторизоваться через официальные приложения ВКонтакте.
Создание ключа доступа для группы во ВКонтакте
Если с этим разобрались, закономерно всплывает следующий вопрос: где взять эту самую ссылку?
- С использованием собственного приложения. Этот метод заведомо рассчитан на то, что у вас есть приложение собственной разработки. Если у вас его нет – самое время создать. Сделать это очень легко: достаточно перейти по ссылке vk.com/apps?act=manage и кликнуть на «Создать приложение ».
Система попросит ввести название для приложения. Как пример, можете использовать «Получение access_token ». Проверьте, если ли галочка «Standalone-приложение ». Далее нажимайте на «Подключить приложение ».
Чтобы подтвердить приложение, надо будет ввести код, который вам придет на указанный номер телефона. На этом этапе создания приложения можно зафиксировать мобильное устройство к странице Вк. Чтобы это сделать, надо кликнуть на «Привязать устройство ». Можно и без привязки к аккаунту. Тогда просто необходимо перейти по ссылке «Подтвердить через SMS ».
После того, как вы подтвердите регистрацию, откроется страница, на которой изложена информация о приложении, которое было создано. Нажмите на «Настройки », которые расположены в левом углу. Там расположен client_id – ID приложения ВКонтакте.
https://oauth.vk.com/authorize?client_id=5563738 redirect_uri=http://api.vk.com/blank.htmlresponse_type=token
5563738 – это ID приложения, которое вы создали. У вас получится похожая комбинация. Для того, чтобы получить ключ доступа, просто перейдите по ссылке, которая получилась.
✅ Получение токена через официальное приложение VK.
Метод отличается от того, который был описан ранее, лишь тем, что вам не нужно создавать собственное приложение. Используйте уже созданное. Ему можно стопроцентно доверять.
Ключ пользователя или токен ВКонтакте. Что это?
Метод будет рассматривать на примере ВКонтакте для Android. ID такой: 2890984 . Именно эту комбинацию надо подставить в ссылку.
https://oauth.vk.com/authorize?client_id=2890984 redirect_uri=http://api.vk.com/blank.htmlresponse_type=token
На этом заканчивается часть статьи, в которой мы рассмотрели варианты идентификации приложения, которые могут быть использованы для авторизации. Осталось коснуться всего лишь нескольких моментов:
✅ Права доступа:
- В примерах, которые описаны выше, параметр scope содержит многие названия разделов социальной сети ВКонтакте: audio, photos, notify, friends. Это те разделы, которые будут открыты для приложения. Аccess_token может быть использован по-разному. ID, который вы используете, принадлежит доверенному приложению. Именно поэтому вы можете создать access_token, у которого есть все права доступа. Он становится универсальным, так что может быть использован везде.
✅ access_token:
Последний вопрос, которого надо коснуться, так это то, как получить непосредственно сам ключ access_token . После того, как вы получите ссылку (использовав один из методов), надо будет перейти по ней, чтобы открыть право доступа.
Уже после этого в вашей адресной строке появится необходимый ключ. Он копируется вручную: после access_token= и перед display=[вид окна] scope=[права приложения] 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. Данный адрес будет выглядеть так:
Подтверждаем действие и попадаем на страницу с предупреждением, из адресной строки браузера берём наш полученный токен. Это будет после #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
Источник: usercpu.ru
Для чего нужен ключ доступа в ВК у групп?
То есть получается, что если я хочу делать публикацию в группе, мне необходимо получить свой access_token? Для чего тогда нужен этот ключ доступа, который я получаю у группы?
- Вопрос задан более трёх лет назад
- 2351 просмотр
Комментировать
Решения вопроса 1
Метод wall.post недоступен с токеном сообщества. В документации https://vk.com/dev для всех методов, доступных с токеном сообщества стоит рядом значёк. Если его нет, значит только с токеном пользователя.
А токен сообщества нужен, например, для сообщений сообщества.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- Боты
- +1 ещё
Как сделать переадресацию сообщения из одного чата группы в другой на Python?
- 1 подписчик
- 22 апр.
- 188 просмотров
Источник: qna.habr.com
Как получить ключ доступа сообщества VK API?
Работаю в Android Studio.
С получением ключа доступа (токена) для пользователя проблем нет. Использую:
VKSdk.login(this, scope);
А как быть с ключом сообщества?
Отслеживать
user207618
задан 21 июн 2018 в 16:32
Виктор Шамрук Виктор Шамрук
175 15 15 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Все очень просто. Заходите в управление сообществом , ищите раздел работа с API , там кликаете создать ключ , далее разберетесь)
Отслеживать
ответ дан 3 июл 2018 в 13:00
New Python Programmist New Python Programmist
318 1 1 золотой знак 6 6 серебряных знаков 18 18 бронзовых знаков
- vkontakte-api
- android-vksdk
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник: ru.stackoverflow.com