Пам-парам-пам:
OAuth 2.0: 1-клиент отсылает запрос на сервер с параметрами
для доступа к данным пользователя с redirect_uri
на который в последствие будет перенаправлен
пользователь и выдан токен в теле адресной строки
2-сервер выдаёт страницу подтверждения для
пользователя принимает ли он условия которые
приложение запрашивае, он тыкает кнопку "да"
3.0-<счастье>
redirect_uri можно указать localhost и путём
временного поднятия микро http сервера
получить токен, всё в рамках простокола OAuth,
приложение использует любой дефолтный браузер
для аутентификации пользователя и получения токена
</счастье>
3.1-<боль>
для доступа к личным данным тоесть scope=messages
необходимо всё тоже самое за исключением того
что redirect_uri обязательно должен быть вида
https://oauth.vk.com/blank.html где подразумевается
что ВСТРОЕННЫЙ В ПРИЛОЖЕНИЕ БРАУЗЕР!!1$1! должен
перехватить страницу редиректа и извлечь токен
что естественно прозрачно не прокатит с рандомным
браузером. И вообще никакого webUI встроенного нет фуфуфу.
</боль>
Ауенно глядь, муа муа мон мезами, шерше эля раков на горе
- - Если подумать то можно обойти притворившись браузером https клиент / парсинг html / отправка POST вроде всё клёво но тут затык суть OAuth теряется, можно хочет он или нет запросить любые права и нажать да автоматически - плохо нииихачу я так.
- - Если ещё подумать то можно запустиь авторизацию в iframe и из root окна получить в последствии url iframe c токеном, но и тут затык vk видит что он в iframe и делает моментально редирект в никуда, то есть даже проверить идею с iframe не получается.
И так что я хочу? А ничего особенного провести OAuth аутентификацию
посредством дефолтного браузера пользователя и получить токен, а именно
адресную строку в итоге https://oauth.vk.com/blank.html#блабляблаksdajfhklsdjfhlksdfhjsdklfjh
Есть у кого какие идеи? Любые, или всё же мне придётся притвориться браузером?
Собственно без запроса прав на messages я использую браузер пользователя,
который у него по умолчанию, тут проблем нет так как я имею возможность задать
редирект с токеном как сказал выше на localhost https://github.com/fedor-elizarov/vktray
Уж точно чего я не буду делать это тащить webkit-dev библиотеки в зависимости
для одноразового запроса авторизации. Всяки хаки приветсвуются :D