Проблема с oAuth авторизацией Вконтакте API
Пытаюсь сделать авторизацию на сервере приложения (IFrame) для выполнения запросов к Вконтакте API. Использую авторизацию через oAuth, описанную здесь.
В результате для первого этапа генерирую такой URL:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }
http://api.vk.com/oauth/authorize?client_id=1874748&display=page&scope=notify,friends,photos,audio,video,notes,pages,offers,questions,wall,offline&response_type=code&redirect_uri=http://dev.4ntwrk.ru/dev.php
При переходе по этому адресу он мне выдаёт:
{"error":"invalid_request","error_description":"OAuth authorization cannot be used from native VK applications"}
Что я пробовал сделать для исправления ситуации:
1. Пробовал домены api.vk.com, api.vkontakte.ru
2. Пробовал использовать протокол https
3. Пробовал перевести приложение в рабочий режим (так-то оно в тестовом)
4. Переставлял передаваемые параметры местами
5. Менял значения параметров "display", "response_type"
6. Убирал параметр scope
7. Делал urlencode параметра redirect_uri
В итоге всегда в результате приходит один и тот же ответ, который я процитировал выше. Что ещё за native VK applications? Что он имеет ввиду и как исправить запрос?
В результате для первого этапа генерирую такой URL:
/** * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2008 Benny Baumann * (http://qbnz.com/highlighter/ and http://geshi.org/) */ .html4strict.geshi_code {font-family:monospace;} .html4strict.geshi_code .imp {font-weight: bold; color: red;} .html4strict.geshi_code .kw2 {color: #000000; font-weight: bold;} .html4strict.geshi_code .kw3 {color: #000066;} .html4strict.geshi_code .es0 {color: #000099; font-weight: bold;} .html4strict.geshi_code .br0 {color: #66cc66;} .html4strict.geshi_code .sy0 {color: #66cc66;} .html4strict.geshi_code .st0 {color: #ff0000;} .html4strict.geshi_code .nu0 {color: #cc66cc;} .html4strict.geshi_code .sc-1 {color: #808080; font-style: italic;} .html4strict.geshi_code .sc0 {color: #00bbdd;} .html4strict.geshi_code .sc1 {color: #ddbb00;} .html4strict.geshi_code .sc2 {color: #009900;} .html4strict.geshi_code span.xtra { display:block; }
http://api.vk.com/oauth/authorize?client_id=1874748&display=page&scope=notify,friends,photos,audio,video,notes,pages,offers,questions,wall,offline&response_type=code&redirect_uri=http://dev.4ntwrk.ru/dev.php
При переходе по этому адресу он мне выдаёт:
{"error":"invalid_request","error_description":"OAuth authorization cannot be used from native VK applications"}
Что я пробовал сделать для исправления ситуации:
1. Пробовал домены api.vk.com, api.vkontakte.ru
2. Пробовал использовать протокол https
3. Пробовал перевести приложение в рабочий режим (так-то оно в тестовом)
4. Переставлял передаваемые параметры местами
5. Менял значения параметров "display", "response_type"
6. Убирал параметр scope
7. Делал urlencode параметра redirect_uri
В итоге всегда в результате приходит один и тот же ответ, который я процитировал выше. Что ещё за native VK applications? Что он имеет ввиду и как исправить запрос?
1 ответов
Вообщем самостоятельно решил свою проблему. Под "native VK applications", как я понял, подразумеваются обычные приложения (Flash, IFrame) и для них, судя по всему, Вконтакте API через oAuth недоступен.
Чтобы использовать oAuth и выполнять через него запросы к API, нужно зарегистрировать «специальное» приложение по этой ссылке.