Страница 1 из 1

Vkontakte.ru OAUTH 2 Авторизация

Добавлено: 11 май 2011, 12:05
montegava
Доброго времени суток, уважаемые форумчане.

Недавно задался вопросом написать приложение для соц.сети ВКонтакте, используя его API

Нашел статью на хабре, как это все "легко" делается. Кроме того почитал спецификацию на самом контакте.

Что я сделал:
1. СоздалStandalone-приложение
2. В итого получил id и другие параметры для моего приложения см. фото
3. Добавил на форму WebBrowser (пишу на C#)
4. По кнопке "Авторизоваться" — делаю навигейт на страницу http://api.vkontakte.ru/oauth/authorize ... type=token
5. Ввожу логин и пароль, но по кнопке ввойти никакого редиректа не происходит, соответсвенно access_token я не могу получить.

Если вставить эту ссылку в браузер - то ситуация повторится

Вопрос: что я делаю не так? Может кто сталкивался с этим?
Заранее спасибо за ответ.

Re: Vkontakte.ru OAUTH 2 Авторизация

Добавлено: 11 май 2011, 16:41
meandnano
redurect_uri у вас ведет на пустую страницу.
вам надо вам надо указать другой адрес, по которому вы и будете отлавливать access_token.

Re: Vkontakte.ru OAUTH 2 Авторизация

Добавлено: 11 май 2011, 19:24
montegava
хм, но вот цитата с сайта вконтакте
REDIRECT_URI – адрес, на который будет передан access_token. Если Вы разрабатываете браузерное Javascript-приложение, то можно указывать любую ссылку в рамках домена, указанного в настройках приложения. Во всех остальных случаях в качестве redirect_uri нужно использовать адрес http://api.vkontakte.ru/blank.html.

Re: Vkontakte.ru OAUTH 2 Авторизация

Добавлено: 12 май 2011, 19:09
meandnano
Очевидно, в этих "остальных" случаях access_token не нужен.
А если вам он нужен, то более того, вам надо сделать следующее:
4. По кнопке "Авторизоваться" — делаю навигейт на страницу http://api.vkontakte.ru/oauth/authorize ... type=token
заменить type на "code", т.к. токен придет в вашем случае только в виде "якоря" (фрагмента), который (во всяком случае на php) не так то просто из ссылки вытащить.
Но истинный способ получения access_token'а заключается в том, чтобы сделать еще один запрос после авторизации по адресу

Код: Выделить всё

 https://api.vk.com/oauth/access_token
(я делал POST, т.к. GET не сработал), в который помимо ID приложения параметрами надо передать секретный ключ приложения и тот самый код ("code"), который вернется в ответе на авторизацию. Тогда вы получите в аккурат access_token.

Re: Vkontakte.ru OAUTH 2 Авторизация

Добавлено: 12 май 2011, 21:05
montegava
спасибо. все заработало. Закрываем тему