Хотите прямо сейчас получить бесплатный видеокурс по программированию для начинающих?

C# API ВКонтакте — Авторизация

Август 24, 2013

Продолжая разговаривать на тему взаимодействия c API ВКонтакте, мы уже создали свое приложений в предыдущем уроке, получили ID приложений, защищенный ключ и сегодня перейдем непосредственно к практической части, начнем писать код, реализуем авторизацию.

Как уже было сказано раньше, есть два метода авторизации. В силу обстоятельств нам возможно использовать только метод OAuth авторизации. Если говорить подробнее, то авторизация данным способом происходит следующим образом. Отправляется запрос на сервер ВКонтакте указывая, необходимые параметры для авторизации, получаем ответ в браузер, пользователь вводит логин и пароль, подтверждает права приложения, и при успешной авторизации нас перенаправляет на специальный адрес, в котором есть 2 параметра user_id (id пользователя) и access_token (специальный ключ).

wefwefПереходим к программированию. Создаем новое C# Windows Form приложение и добавляем на нашу форму элемент webBrowser.

В свойствах webBrowser выставляем параметр ScriptErrorsSuppressed в значение True. Это выключит появление сообщений об ошибках javascript сценариев.

 

 

Свойство Url указываем следующее: oauth.vk.com/authorize?client_id=ID_ПРИЛОЖЕНИЯ&scope=ПРАВА_ДОСТУПА&redirect_uri=https://oauth.vk.com/blank.html&display=popup&response_type=token

2

Где ID_ПРИЛОЖЕНИЯ это ID который вы получили при создании приложения. А ПРАВА_ДОСТУПА это перечень прав, которые необходимо получить приложению. То есть если хотим получить доступ к друзьям и аудиозаписям, то указываем friends,audio. Запуская приложение вы получите страницу с авторизацией ВКонтакте, если так и есть переходим дальше к обработке авторизации. Нам осталось обработать событие, когда пользователь успешно ввел логин и пароль и система вернула ключ, который указывает на то, что авторизация успешно произведена. Добавляем событие Navigated к нашему webBrowser. Когда авторизация происходит успешно, система перенаправляет нас на redirect_uri который указан в параметрах запроса. Поэтому проверяем находимся ли мы на этой странице, если да, то извлекаем Url и его параметры. Пишем в событии Navigated следующий код:

if (webBrowser1.Url.ToString().IndexOf("https://oauth.vk.com/blank.html") == 0)
 {
 var urlParams = HttpUtility.ParseQueryString(e.Url.Fragment.Substring(1));
 string ACCESS_TOKEN = urlParams.Get("access_token");
 string USER_ID = urlParams.Get("user_id");
}

Таким образом в переменной ACCESS_TOKEN мы получили специальный ключ который, указывает на успешную авторизацию, а в USER_ID содержится id авторизованного пользователя. Для того что бы работал метод ParseQueryString указываем в начале кода using System.Web;

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



2 Комментариев к записи C# API ВКонтакте — Авторизация

  1. доктор Брейн on 28.08.2013 at 21:24

    А вариант на Delphi будет? Просто мне интереснее бы с этим языком.

  2. Семён on 01.12.2013 at 02:35

    Итак, webBrowser( встроенный IE) при попытке ввести данные и нажать «Войти» просто обновляет страницу сбрасывая введённый логин и пароль. При этом, если скопировать адрес в Chrome, то авторизация проходит успешно. Что с этим делать? IE 9, Windows 7.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Поддержите проект

Хит продаж:

Случайный анекдот

Моя вторая книга

Что это???

Программирование для Android:

Мы вконтакте

Помощь сайту

Понравился сайт? Он сильно нуждается в раскрутке.

Чтобы помочь в раскрутке - опубликуйте ссылку на сайт (или любую его страницу) на любом другом сайте в интернете. Тогда сайт станет чуточку популярнее.

Или просто нажмите на кнопки социальных сетей которые стоят в конце каждой статьи

Вместе мы сможем сделать программирование более популярным и более понятным для всех!

Заранее спасибо!
Артём Кашеваров.