Как получить access_token для приложения Вконтакте

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

У нас будет подготовлена специальная ссылка для авторизации, работающая на основе официального API Вконтакте. В основе лежит протокол безопасной авторизации OAuth. Сам метод называется Implicit Flow.

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

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

Что такое ID Вконтакте и как он выглядит?

Итак, перед тем, как искать этот самый ID, стоит сначала рассказать, как он вообще выглядит и какой бывает.

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

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

Виды 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.

Как сделать авторизацию с помощью ВКонтакте в десктопном приложении

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

Как происходит авторизация?

Авторизация ВКонтакте ничем не отличается от любой другой авторизации через сторонний сервер. Этот процесс отлично описал пользователь StackOverflow qnub:

  1. На сервисе (в данном случае ВК) необходимо зарегистрировать приложение и получить ключ API.
  2. После этого приложение (сайт) могут делать запрос личных данных пользователя у стороннего сервиса через этот самый API, для чего:
      перенаправить пользователя (браузер пользователя посредством посылки ему HTTP-ответа 302 Redirect) по специально сформированной ссылкена сервис предоставляющий API;
  3. пользователь произведёт там какие-то действия, предположительно авторизуется и разрешит доступ к данным.
  4. По завершении действий пользователь будет перенаправлен сторонним сервисом посредством всё того же 302 Redirect на URL переданный в параметрах специально сформированной ссылки.

Шаг первый. Зарегистрировать своё приложение и получить ключ

Этот шаг самый простой. Нужно перейти на страницу ВК для разработчиков: https://vk.com/dev — и нажать на кнопку «Создать приложение». Тип указываем как «Standalone-приложение», имя, естественно, указываем произвольное. После этого в разделе «Мои приложения» появится (что бы вы думали?) ваше приложение. Смело нажимайте «редактировать», затем переходите в раздел «Настройки» — там первой же строкой вы увидите надпись «ID приложения: 1234567». Эти цифры — всё, что вам нужно запомнить для авторизации.

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

Шаг второй. Формирование специальной ссылки

Далее вам нужно направить пользователя по специально сформированному адресу (её упоминания выделены жирным цветом в первом разделе статьи), где он подтвердит, что хочет разрешить вашему приложению выполнять какие-то действия со своим аккаунтом. Как же формируется эта ссылка?

Этот процесс подробно описан в документации. Однако, если вы обратились к этой статье, я предполагаю, что вам не хватило информации в документации, и поэтому перескажу всё своими словами. Ссылка имеет следующий вид: хост?параметры. Параметры имеют вид нескольких пар вида ключ=значение разделённых символами &.

Хост всегда остаётся неизменным: https://oauth.vk.com/authorize. Набор параметров так же неизменен:

  • client_id. Здесь стоит указать те самые цифры, которые мы добыли в первом шаге.
  • redirect_uri. Адрес, по которому будет перенаправлен пользователь. Для Standalone приложений это только https://oauth.vk.com/blank.html.
  • display. Этот параметр отвечает за то, как будет показываться страница авторизации. Доступно три варианта: page, popup и mobile. Если не уверены, используйте page.
  • scope. В этом параметре вам следует через запятую перечислить параметры доступа, которые вам необходимы. Полный список доступных параметров приведён на соответствующей странице документации. Обращаю ваше внимание, что можно не указывать вообще ничего и просто не писать этот параметр. Чтобы узнать, какие опции доступа вам нужны посмотрите в документацию методов, которые вы собираетесь использовать.
  • response_type. Указываем token и идём дальше.
  • v. Версия API. Актуальная — 5.59.

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

https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=https://example.com/callback&scope=friends&response_type=token&v=5.59

Шаг третий. Что дальше?

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

https://REDIRECT_URI#access_token=
TOKEN3&expires_in=TIME&user_id=ID
Нас интересует TOKEN. Как же направить пользователя на страницу из Java-приложения и как получить адрес страницы, на которую его перенаправит ВК (чтобы извлечь из неё токен)? Существует два способа.

Советский, через браузер по умолчанию

Если вы решили пойти по этому пути, то вы просто открываете браузер системы по умолчанию с полученной выше ссылкой, а пользователю каким-то образом сообщаете, что он должен скопировать из URL токен и вставить его в какое-то поле. Понятно, что у этого метода отвратительный UX, однако его можно реализовать легко и быстро. Вполне подойдёт, если вы пишете приложение для себя — чтобы скачать музыку или получать уведомления. Реализуется он следующим образом:

public String askToken(String link) throws IOException, URISyntaxException{ //Opens link in default browser Desktop.getDesktop().browse(new URI(link)); //Asks user to input token from browser manually return JOptionPane.showInputDialog(«Please input access_token param from browser: «); }

Буржуазный, через веб-компоненты

Если вы решили пойти по этому пути, то вам потребуется использовать какую-либо стороннюю GUI-библиотеку (или по крайней мере JavaFX), у которой в арсенале есть свой компонент браузера. Над таким бразуером ваша программа будет иметь полную власть, и вы сможете извлечь адрес, на который вас перенаправил ВК, программными средствами. На JavaFX это можно реализовать следующим образом:
import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; public class Main extends Application{ public static final String REDIRECT_URL = «https://oauth.vk.com/blank.html»; public static final String VK_AUTH_URL = «»; //TODO!!! public static String tokenUrl; public static void main(String[] args){ System.out.println(Main.getTokenUrl()); } public static String getTokenUrl(){ launch(Main.class); return tokenUrl; } @Override public void start(Stage primaryStage) throws Exception { final WebView view = new WebView(); final WebEngine engine = view.getEngine(); engine.load(VK_AUTH_URL); primaryStage.setScene(new Scene(view)); primaryStage.show(); engine.locationProperty().addListener(new ChangeListener(){ @Override public void changed(ObservableValue

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

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

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

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

Переходим к созданию нового приложения

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

Название и тип

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

Подтверждение через смс

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

id приложения

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

Как посмотреть чужой ID, если ты в черном списке?

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

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

Просмотр кода

  • Дальше нажимаем Ctrl+F, чтобы открылась строчка для поиска по коду
  • В открывшейся строчке набираем «user_id»

Ищем ID

  • В конечном счете вам покажется нужная информация

Получаем Access_token

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

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

Скопируйте ссылку, вставьте в браузер и перейдите по ней. Будет открыта страница подтверждения доступа — нажимаем «Разрешить».

Подтверждаем доступ

В браузере откроется страница, на которой указано уведомление о том, что не стоит предоставлять ключ доступа третьим лицам. А в адресной строке браузера — сформированный ключ. Он находится между значениями «access_token=» и «&expires_in». Скопируйте его.

Готовый access token

Как узнать ID пользователя ВК

Ситуация 2. Допустим, Вам нужно узнать не свой ID в VK, а Вашего нового знакомого или старого друга, с которым встретились после долгой разлуки, как поступить в такой ситуации? Тут тоже нет ничего сложного, главное — знать, где можно подсмотреть заветные цифры.

#1 В адресной строке

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

Но проблема в том, что нередко безликие цифры в адресной строке заменены на короткое имя, поэтому такой способ срабатывает не всегда. Так как узнать цифровой ID в ВК, если там слово подобным способом не получится, и придётся искать обходные пути. Поэтому если Вы решили изменить АйДи-адрес, тоже учитывайте момент, что обнаружить Вас будет сложнее.

#2 С помощью аватарки

Даже если пользователь сменил адрес аккаунта, изменив цифры на ник, то адрес аватарки всё равно остаётся привязанным к идентификационному номеру, этой особенностью можно воспользоваться. Для этого потребуется:

  1. Открыть нужный аккаунт и кликнуть на аватарку, чтобы изображение развернулось на весь экран.
  2. Проверить адресную строку: после текста «photo» идёт ряд цифр до нижнего подчёркивания — они и будут искомой комбинацией.

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

  • любые снимки из альбомов (искать цифровую комбинацию надо после текста «album» до нижнего подчёркивания);
  • видеоролики (после текста «videos» до вопросительного знака);
  • посты на стене (после «wall» до нижнего подчёркивания);
  • аудиозаписи (после «audios»);

Ещё один способ, как посмотреть ИД в ВК другого человека, — нажать кнопку «Написать сообщение» или открыть уже существующий диалог. Отправлять текст не обязательно, достаточно проверить адресную строку: после текста «sel=» находится нужная информация.

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

#3 Открыв код страницы

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

  • Открыть аккаунт пользователя, номер которого нужно узнать.
  • Кликнуть правой кнопкой мыши в любом месте на странице и найти «Посмотреть код».
  • Цифровой идентификатор будет встречаться множество раз, ускорить процесс поиска поможет функция поиска. Надо нажать Ctrl+F и в окне поиска ввести, например, page_avatar — рядом с текстом будут нужные цифры.

Это не самый простой вариант, как в VK узнать ID человека: так как пункт, где находится нужная информация приходится искать вручную. Дополнительная сложность возникает, если поиск ведётся по стороннему аккаунту: код содержит как номер аккаунта, под которым выполнен вход, так и номер того аккаунта, который в данный момент открыт в браузере.

#4 По номеру телефона

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

Кстати! Зато есть способ, как решить обратную задачу и узнать номер телефона владельца аккаунта!

Выводы

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

Теперь VK API ID может пригодится вам в самых различных ситуациях, в том числе и автоматический постинг записей, используя плагин для WordPress — AutoPoster. Это очень удобно и действительно качественно, так как присутствуют множественные детальные настройки отображения содержимого поста, за счёт возможности создания любого формата шаблона.

E-mail

2+

Рейтинг
( 1 оценка, среднее 4 из 5 )
Понравилась статья? Поделиться с друзьями:
Для любых предложений по сайту: [email protected]