вівторок, 21 червня 2011 р.

ВКонтакте → Авторизація Standalone-додатків використовуючи OAuth 2.0 на прикладі Ruby і Mechanize

Про авторизацію Desktop-додатків ВКонтакте на прикладі Ruby і Mechanize я писав більше року тому. З того часу спливло чимало води:
  • Для авторизації додатків використовується відкритий протокол OAuth 2.0.
  • Запити до API здійснюються без необхідності їх підписувати, завдяки використанню протоколу HTTPS.
Про серверну авторизація ВКонтакте використовуючи OAuth 2.0 я вже писав у цій статті на прикладі Sinatra. У цій статті мова про клієнтську авторизації на прикладі Mechanize.

Поїхали!

Підключаємо необхідні бібліотеки:

Створюємо екземпляр класу OAuth2::Client:

Для початку процесу авторизації необхідно створити вікно браузера і відкрити в ньому діалог авторизації за адресою, отриманою від клієнта OAuth2:

В діалоговому вікні буде запропоновано ввести логін і пароль.

Після успішного входу на сайт буде запропоновано авторизувати додаток(якщо це не так), дозволивши доступ до необхідних налаштувань, запитаних параметром scope(детальніше тут).

Після успішної авторизації браузер буде перенаправлено за адресою :redirect_uri, вказаною при відкритті діалогу авторизації. При цьому код для отримання access_token буде переданий в URL-фрагменті посилання.

Отримуємо access_token:

Після успішної авторизації можна здійснювати запити до API.

P.S. Посилання на мою бібліотеку для авторизації ВКонтакте і здійснення запитів до API.

Немає коментарів: