Авторизация OAuth2 на стороннем сайте из Flash приложения.

Создание Desktop-приложений, виджеты ВКонтакте для сайтов и публичных страниц, OAuth 2.0, Open API, Standalone
Ответить
broken
Сообщения: 4
Зарегистрирован: 11 янв 2013, 16:44

Авторизация OAuth2 на стороннем сайте из Flash приложения.

Сообщение broken »

Добрый день.

Имеется следующая ситуация:
1. Есть какой-то сайт, на одной из его страничек имеется flash приложение.
2. Заходя в это flash приложение, необходимо чтобы внутри него пользователь мог авторизоваться через соц. сети, например, Вконтакте (именно внутри флэшки).

Получается:
1. Имеем сторонний сайт с флэшкой, следовательно тип приложения ВК - Веб-сайт.
2. Для авторизации будем использовать OAuth2.
3. Следуя всем инструкциям, делаем примерно следующее:
a) Направляем человека по нажатию на кнопку Flash на страницу ВК:

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

 var authUrl:String = "https://oauth.vk.com/authorize?" +                   "client_id=" + app_id + "&" +                   "scope=" + settings + "&" +                  "response_type=code&" +                  "redirect_uri=" + redirectUri;                navigateToURL(new URLRequest(authUrl)); 
, где redirectUri адрес нашего скрипта на сервере, например vk_callback.php

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

 <?php $AUTH['client_id'] = 'id';$AUTH['client_secret'] = 'secret'; if (isset($_GET['code'])) {    $curl = curl_init('https://oauth.vk.com/access_token');    curl_setopt($curl, CURLOPT_POST, 1);    curl_setopt($curl, CURLOPT_POSTFIELDS,             'code=' . $_GET['code'] .             '&redirect_uri=' . urlencode(auth_uri) .             '&client_id=' . $AUTH['client_id'] .             '&client_secret=' . $AUTH['client_secret']);    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);    $s = curl_exec($curl);    curl_close($curl);    $auth = json_decode($s, true);} ?> 
, допустим получили access_token из $auth['access_token'].

Вопрос:
Как отдать после этого результат (например 'user auth complete') обратно флэшке, в том состоянии в котором flash приложение было. Т.е. как добавить calllback внутри flash на схему flash-vk-server-flash.
Предполагаю, что нужно использовать js помимо flash еще.
Надеюсь понятно написал. Возможно у кого-то есть примеры, другие линки или что-то еще.
Спасибо.
broken
Сообщения: 4
Зарегистрирован: 11 янв 2013, 16:44

Re: Авторизация OAuth2 на стороннем сайте из Flash приложения.

Сообщение broken »

Ну то что есть ExternalInterface для схемы flash-js с его возможностями да, это я читал (call, addCallback и тп), спасибо.
Я не совсем понимаю как вообще повесить callback на вызов диалога авторизации ВК "https://oauth.vk.com/authorize?..." ведь он потом автоматически редиректит на php скрипт, который в свою очередь должен послать ответ (js-flash). Этот то ответ мне и нужен.

1. Есть обработчик клика во flash который через ExternallInterface.call вызывает JS обработчик.
2. Этот самый JS обработчик кидает на диалог ВК авторизации и должен иметь свой callback видимо, чтобы получить потом ответ. Но разве можно получить в JS ответ из схемы вызова flash->js->vk_server->php_server->js->flash.

Подскажите как написать сам обработчик JS с соответствующим callback для такой схемы.
broken
Сообщения: 4
Зарегистрирован: 11 янв 2013, 16:44

Re: Авторизация OAuth2 на стороннем сайте из Flash приложения.

Сообщение broken »

Вообщем разобрался на примере с Facebook:
http://blog.yoz.sk/2010/05/facebook-gra ... and-flash/
Получение переменной от схемы flash->vk->php->flash возможно через возврат callback'a, в котором происходит обращение к флэшке через javascript и ExternallInterface.
EridaN
Сообщения: 1
Зарегистрирован: 17 июл 2013, 02:45

Re: Авторизация OAuth2 на стороннем сайте из Flash приложения.

Сообщение EridaN »

кто то сделал это ? можете пример показать ?
Ответить