Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Авторизация VK (получение токена) (http://www.flasher.ru/forum/showthread.php?t=210726)

klaustrofobia 27.04.2015 17:19

Авторизация VK (получение токена)
 
Здравствуйте, товарищи, знатоки! Не ругайте меня сильно, пожалуйста, я, конечно же, как всегда, допустил какую-то незначительную ошибку, которую не могу найти уже неделю :eek:
Дело в том, что у меня авторизация спотыкается где-то, а где, понять не могу.
Приходит code, флэшка его считывает, далее:
Код AS1/AS2:

Security.allowDomain(" * ");        
 
var TOKEN:LoadVars = new LoadVars();
TOKEN.onData = function(myToken:String){
 
                if(myToken == undefined){
                        cons.text += "Error MT";
                }
                else{
                        func();
                }
}
 
if(code != undefined){
 
                TOKEN.load('https://oauth.vk.com/access_token?client_id=*******&client_secret=*******&redirect_uri=http://******.ru&code='+code, TOKEN, "GET");
}

Обратно ничего не приходит. А дальше - магия! Вставляю полученный code вручную в саму флэшку, т.е.
Код AS1/AS2:

code="3wer8b322t48v72h";
TOKEN.load('https://oauth.vk.com/access_token?client_id=*******&client_secret=*******&redirect_uri=http://******.ru&code='+code, TOKEN, "GET");

И все работает! И токен тебе и все дела. Где я ошибся? Не ругайтесь)

caseyryan 27.04.2015 18:45

Не специалист в as2, но почему там undefined используется?
Не лучше ли так:
Код AS3:

if(!myToken)

Код AS3:

if(code)


dark256 27.04.2015 21:22

onData - не используйте. Оно криво работает.

klaustrofobia 29.04.2015 12:29

Учел и то и другое, однако чудеса продолжаются))) истерика))
вручную код ставлю и ахаххаха, а автоматически сам не читает

caseyryan 29.04.2015 18:13

Да нет там никаких чудес. Откуда вообще берется эта переменная code? Я не вижу этого в коде
Можно же поставить простой trace(code) и посмотреть что там в нем

klaustrofobia 01.05.2015 17:42

code берется из адреса http://****url****.ru/?code=cf27c619dae73544a4
trace'ом эт не проверить, т.к. авторизацию приходится проверять уже на сайте, поэтому вывожу в текстовое поле и там этот код замечательным образом есть

caseyryan 01.05.2015 18:07

Цитата:

trace'ом эт не проверить
Еще как проверить. Надо всего лишь отладочный плеер в браузер поставить и включить в IDE удаленную отладку.
Но раз в текстовое поле выводится, значит должно работать. Показывайте весь код. Наверняка проблема в коде. Или в этой переменной code есть лишние символы, типа \n или \t или \r

klaustrofobia 01.05.2015 21:22

code передается js, так что когда флешка загружена, code ей уже известен, если он вообще есть

Код AS1/AS2:

var MyCode:String = code;
TOKEN.onData = function(myToken:String){
                cons.text += myToken;
                if(!myToken){
                        cons.text += "Error MT"
                }
                else{
                      func();
                }
}
 
cons.text += MyCode;
 
if(MyCode){
        TOKEN.client_id = *********;
        TOKEN.client_secret = ********;
        TOKEN.redirect_uri = "http://**********.ru";
        TOKEN.code = MyCode;
        TOKEN.sendAndLoad('https://oauth.vk.com/access_token',TOKEN,"POST");
}

Выход: 8b735af1a7d6ac2ca1undefinedError MT

И теперь тоже самое если вручную вставить код =)

Код AS1/AS2:

MyCode = "8b735af1a7d6ac2ca1";
cons.text += MyCode;
 
if(MyCode){
 
        TOKEN.client_id = *********;
        TOKEN.client_secret = ********;
        TOKEN.redirect_uri = "http://**********.ru";
        TOKEN.code = MyCode;
        TOKEN.sendAndLoad('https://oauth.vk.com/access_token',TOKEN,"POST");
}

Выход: 8b735af1a7d6ac2ca1{"access_token":"5fbebc3818b9b2df981461bb5c14c04a598d8cc2b796ff0c0e7cbbe38ae6df7aec97d1fc080d6169a8f7d","expires_in":85993,"user_id" :10743537,"email":"**......

Ну не прикол ли)

А насчет отладочного плеера спасибо)) взял на вооружение!) странно что я только сейчас об этом узнал)

caseyryan 01.05.2015 21:47

Сделайте вот так:
Код AS3:

cons.text += ">>>" + MyCode + "<<<"; // если тут все правильно, то это должно выглядеть так: >>>8b735af1a7d6ac2ca1<<<, а не так, к примеру >>>8b735af1a7d6ac2ca1 <<<

чтобы убедиться, что этот MyCode не содержит никаких лишних символов, типа пробела. Больше, чем уверен, что туда приходит что-то левое

klaustrofobia 02.05.2015 18:07

Все печально

>>>930ea48ffef28e2a93<<<undefinedError MT


Часовой пояс GMT +4, время: 21:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.