Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Не происходит запрос к API (http://www.flasher.ru/forum/showthread.php?t=177234)

AngelPOPs 27.03.2012 17:37

Не происходит запрос к API
 
Вот так делаю. ID приложения выводит и всё...
Что не так? Даже ошибку не даёт.
Код AS3:

package 
{
        import vk.APIConnection;
        import vk.events.*;
        import flash.display.MovieClip;
        import flash.events.*;
 
        public class Main extends MovieClip
        {
                public var api_id:Number;
                public var viewer_id:Number;
                public var sid:String;
                public var secret:String;
 
                public function Main()
                {
 
                        if (stage)
                        {
                                init();
                        }
                        else
                        {
                                addEventListener(Event.ADDED_TO_STAGE,init);
                        }
                }
 
                private function init(e:Event=null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE,init);
 
                        var flashVars:Object = stage.loaderInfo.parameters as Object;
 
                        api_id = flashVars['api_id'];// id приложения
                        viewer_id = flashVars['viewer_id'];// id пользователя
                        sid = flashVars['sid'];// сид
                        secret = flashVars['secret'];// секретный пароль
 
                        result_tf.text = "ID приложения: " + api_id;
 
                        var VK:APIConnection = new APIConnection(flashVars);
                        VK = new APIConnection(flashVars);
 
                        VK.api('users.get', {uids: viewer_id, fields:'nickname'}, onProfileLoaded, onError);
                }
 
                private function onProfileLoaded(e:Object):void
                {
                        result_tf.text = "Погоняло: " + e.nickname;
                }
 
                private function onError(e:Object):void
                {
                        result_tf.text = "Ошибка: " + e.error_msg;
                }
        }
}


ЗлОй ПрОграММер 27.03.2012 18:25

Код AS3:

result_tf.text = "Погоняло: " + e[0].nickname;

и ещё не nickname, а screen_name попробуйте

AngelPOPs 27.03.2012 18:48

И так не работает.
Код AS1/AS2:

result_tf.text = "Погоняло: " + e.length;

И так... никак...

ЗлОй ПрОграММер 27.03.2012 19:12

а функция то onProfileLoaded хоть вызывается ?

AngelPOPs 27.03.2012 19:19

Неа. Если даже просто сказать:
Код AS1/AS2:

result_tf.text = "Работает"

Текст, не меняется в поле result_tf.

ЗлОй ПрОграММер 27.03.2012 21:43

а APIConnection у вас только в одном классе используется ? больше негде ?
да и попробуйте таким ещё образом
Код AS3:

VK.api('users.get', {uids: flashVars.viewer_id, fields:'nickname'}, onProfileLoaded, onError);

вот вам мой класс, он во всяком случае работает
Код AS3:

package  
{
 
        import flash.display.Sprite;
        import flash.events.Event;
        import vk.APIConnection;
 
 
        public class VKapi extends Sprite
        {
 
                private var flashVars: Object;
                private var VK: APIConnection;
 
                public function VKapi()
                {
                //----------------------------------------------------------------------
                        if (stage) init()
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                //----------------------------------------------------------------------
                }
 
                private function init(e: Event = null): void
                {
                //----------------------------------------------------------------------       
                        flashVars = stage.loaderInfo.parameters as Object;
                        VK = new APIConnection(flashVars);
                        getProfiles();
                //----------------------------------------------------------------------       
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                //----------------------------------------------------------------------
                }
 
 
                private function getProfiles(): void
                {
                //----------------------------------------------------------------------       
                        var profilesFields: String;
                //----------------------------------------------------------------------
                        profilesFields = 'uid, first_name, last_name, screen_name, photo_big';
                //----------------------------------------------------------------------       
                        VK.api('users.get', {uids: flashVars.viewer_id, fields: profilesFields},
                                                              getProfilesTrue, getProfilesFalse);
                //----------------------------------------------------------------------
                }
 
                private function getProfilesTrue(data: Object): void
                {
                //----------------------------------------------------------------------
 
                //----------------------------------------------------------------------
                }
 
                private function getProfilesFalse(data: Object): void
                {
                //----------------------------------------------------------------------
 
                //----------------------------------------------------------------------
                }
 
 
        }
 
}


AngelPOPs 29.03.2012 03:48

Благодарю... Не понимаю пока почему, но работает.
Только в запросе стоит точка с запятой, я поправил и заработало...
Код AS3:

VK.api('users.get', {uids: flashVars.viewer_id, fields: profilesFields}, 
                                                              getProfilesTrue, getProfilesFalse);


ЗлОй ПрОграММер 29.03.2012 08:22

да точн) ща исправлю
да и насколько я знаю uids в качестве параметра должен принимать строку, а не Number как вы раньше написали.

AngelPOPs 30.03.2012 05:11

Как подсказали, что проблема была в том, что обьявлять переменные нужно в теле класса, а не в методе.
Код AS3:

private var flashVars: Object;
private var VK: APIConnection;



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

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