Не отрабатывается запрос users.get

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
AngelPOPs
Сообщения: 4
Зарегистрирован: 26 мар 2012, 12:30

Не отрабатывается запрос users.get

Сообщение AngelPOPs »

Здраствуйте.
Разбираюсь как это работает.
А вот это не совсем работает...

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

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;            if (! flashVars.api_id)            {                // -- For local testing enter you test-code here:                 flashVars['api_id'] = 1888171;                flashVars['viewer_id'] = 66748;                flashVars['sid'] = "7e22c25d7fece88f2316553937ff24f43e1073ca28e8b4302e65db35fa";                flashVars['secret'] = "6113n3e4g3";                // -- //             }             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.first_name.length;        }         private function onError(e:Object):void        {            result_tf.text = "Ошибка: " + e.error_msg;        }    }}
Выводит ID приложения, а запрос к API не происходит. Ошибку тоже не отрабатывает.
Сильно не пинайте, я только учус...
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не отрабатывается запрос users.get

Сообщение Александр »

Это что такое? Почему length?

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

e.first_name.length;
Начинай использовать Charles, чтобы видеть выполняются ли запросы вообще.
AngelPOPs
Сообщения: 4
Зарегистрирован: 26 мар 2012, 12:30

Re: Не отрабатывается запрос users.get

Сообщение AngelPOPs »

Не в том вопрос...
Даже если написать так:

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

result_tf.text = "Работает";
Оно не работает.
length - длина, на сколько я знаю.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не отрабатывается запрос users.get

Сообщение Александр »

А по второй части что? Что в Charles видишь? Запрос выполняется?
AngelPOPs
Сообщения: 4
Зарегистрирован: 26 мар 2012, 12:30

Re: Не отрабатывается запрос users.get

Сообщение AngelPOPs »

Поставил Charles.
Запроса нет.
Прошу прощения, не заметил второй части.
Аватара пользователя
gaponj88
Сообщения: 433
Зарегистрирован: 21 окт 2011, 12:26

Re: Не отрабатывается запрос users.get

Сообщение gaponj88 »

AngelPOPs
А зачем ты два раза выполняешь подключение?

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

 var VK:APIConnection = new APIConnection(flashVars);VK = new APIConnection(flashVars);
убери вторую строчку
AngelPOPs
Сообщения: 4
Зарегистрирован: 26 мар 2012, 12:30

Re: Не отрабатывается запрос users.get

Сообщение AngelPOPs »

Мнда. Пока не понял почему, но вот этот скрипт работает:

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

package {    import flash.display.Sprite;    import flash.events.Event;    import vk.APIConnection;     public class Main extends Sprite    {        private var flashVars:Object;        private var VK:APIConnection;         public function Main()        {            //----------------------------------------------------------------------            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        {            //----------------------------------------------------------------------            result_tf.text = "Фамилия: " + data[0].last_name;            //----------------------------------------------------------------------        }         private function getProfilesFalse(data: Object):void        {            //----------------------------------------------------------------------            result_tf.text = "Ошибка";            //----------------------------------------------------------------------        }    }}
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не отрабатывается запрос users.get

Сообщение Александр »

AngelPOPs
gaponj88 писал(а):А зачем ты два раза выполняешь подключение?
убери вторую строчку

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

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;            if (! flashVars.api_id)            {                // -- For local testing enter you test-code here:                flashVars['api_id'] = 1888171;                flashVars['viewer_id'] = 66748;                flashVars['sid'] = "7e22c25d7fece88f2316553937ff24f43e1073ca28e8b4302e65db35fa";                flashVars['secret'] = "6113n3e4g3";                // -- //            }             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.api('users.get', {uids: viewer_id, fields:'nickname'}, onProfileLoaded, onError);                   }         private function onProfileLoaded(e:Object):void        {            result_tf.text = "Погоняло: " + e.first_name.length;        }         private function onError(e:Object):void        {            result_tf.text = "Ошибка: " + e.error_msg;        }    }}
Работает.
Ответить