C # API ВКонтакте - Вхід | Центр програмування Артема Кашеварова | навчання програмуванню
Продовжуючи розмовляти на тему взаємодії c API ВКонтакте, ми вже створили своє додатків в попередньому уроці , Отримали ID додатків, захищений ключ і сьогодні перейдемо безпосередньо до практичної частини, почнемо писати код, реалізуємо авторизацію.
Як вже було сказано раніше, є два методи авторизації. В силу обставин нам можливо використовувати тільки метод OAuth авторизації. Якщо говорити докладніше, то авторизація даними способом відбувається наступним чином. Відправляється запит на сервер ВКонтакте вказуючи, необхідні параметри для авторизації, отримуємо відповідь в браузер, користувач вводить логін і пароль, підтверджує права додатки, і при успішній авторизації нас перенаправляє на спеціальну адресу, в якому є 2 параметра user_id (id користувача) і access_token (спеціальний ключ).
Переходимо до програмування. Створюємо новий 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
Де 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;
На цьому все, в подальших уроках ми поговоримо про те, як використовувати ці дані, як відправляти запит, отримувати і обробляти відповідь.
Сподобалася стаття? Тисни:
Com/authorize?Сподобалася стаття?