не работает friends.getAppUsers у меня

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Sh.A.R.c
Сообщения: 7
Зарегистрирован: 19 ноя 2010, 00:03

не работает friends.getAppUsers у меня

Сообщение Sh.A.R.c »

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

import vk.APIConnection;import vk.events.*;import flash.text.TextField; var flashVars:Object = stage.loaderInfo.parameters as Object;var VK:APIConnection = new APIConnection(flashVars); var i:int = new int(); var txtField:TextField = new TextField();txtField.x = 100;txtField.y = 100;txtField.width = 300;txtField.height = 300; VK.callMethod("showSettingsBox", 2); VK.addEventListener("onSettingsChanged", UpdateStatus); function UpdateStatus(e:CustomEvent):void{    if(e.params[0] > 2)        VK.api("friends.get", EditStatSuccess, EditStatFail);    else        VK.callMethod("showSettingsBox", 2);} function EditStatSuccess(response:Object):void{    txtField.text = response.uid;} function EditStatFail(response:Object):void{    txtField.text = response.error_msg;} addChild(txtField);

то при запуске пустой екран, ни одного ИДи, хотя двое установили
catamount5
Сообщения: 63
Зарегистрирован: 10 авг 2010, 13:37

Re: не работает friends.getAppUsers у меня

Сообщение catamount5 »

а чтр у вас в VK.api написано? какая там функция?
Sh.A.R.c
Сообщения: 7
Зарегистрирован: 19 ноя 2010, 00:03

Re: не работает friends.getAppUsers у меня

Сообщение Sh.A.R.c »

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

    public function api(method: String, params: Object, onComplete:Function = null, onError:Function = null):void {      var options: Object = new Object();      options['params'] = params;      options['onComplete'] = onComplete;      options['onError'] = onError;      dp.request(method, options);    }
catamount5
Сообщения: 63
Зарегистрирован: 10 авг 2010, 13:37

Re: не работает friends.getAppUsers у меня

Сообщение catamount5 »

А почему Вы название метода посылаете "friends.get"?
Я посылаю "friends.getAppUsers"
catamount5
Сообщения: 63
Зарегистрирован: 10 авг 2010, 13:37

Re: не работает friends.getAppUsers у меня

Сообщение catamount5 »

Не уверена, что будут вызваны функции function EditStatSuccess и function EditStatFail.
Во-первых, как-то сомнительно, что по их именам произойдет обращение.
Во-вторых, если Вы пишите код не внутри флеша, а отдельными файлами, то функциям надо присвоить public. Т.к. на сколько я помню, если по умолчанию флеш ставит internal
zeropoid
Сообщения: 9
Зарегистрирован: 21 дек 2010, 00:39

Re: не работает friends.getAppUsers у меня

Сообщение zeropoid »

Ребята покажите пример кода который извлекает данные из ответа friends.getAppUsers. Ну очень надо!!!
Заранее спасибо!
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: не работает friends.getAppUsers у меня

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

zeropoid

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

var response:XML=new XML(url_loader.data);for each (var fid:XML in response.*) {     trace(fid);}
Terranus
Сообщения: 1
Зарегистрирован: 14 дек 2010, 17:06

Re: не работает friends.getAppUsers у меня

Сообщение Terranus »

Здравствуйте.
Может быть вы подскажите мне в чем дело.
Отправляю со стороннего сервера запрос на получение списка друзей в приложении.

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

http://api.vkontakte.ru/api.php?api_id=2056781&format=XML&method=friends.getAppUsers&random=27664&timestamp=1293365786&uid=91698&v=3.0&sig=ab890e601dd8c3dc7e2cde936dfb3409 
Сервер отвечает что не знает такого метода.

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

<?xml version="1.0" encoding="utf-8"?><error> <error_code>3</error_code> <error_msg>Unknown method passed</error_msg> <request_params list="true">  <param>   <key>api_id</key>   <value>2056781</value>  </param>  <param>   <key>format</key>   <value>XML</value>  </param>  <param>   <key>method</key>   <value>friends.getAppUsers</value>  </param>  <param>   <key>random</key>   <value>27664</value>  </param>  <param>   <key>timestamp</key>   <value>1293365786</value>  </param>  <param>   <key>uid</key>   <value>91698</value>  </param>  <param>   <key>v</key>   <value>3.0</value>  </param>  <param>   <key>sig</key>   <value>ab890e601dd8c3dc7e2cde936dfb3409</value>  </param> </request_params></error>
Может что не так делаю?

Запрос составляю с помощью класса VkApi.class.php
Добавил туда свою функцию

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

     public function getAppUsers ($uid)    {        $api = new VkApi($this->api_id,                            'friends.getAppUsers',                            $this->secret,                            $this->format,                            '3.0',                            $this->server_url,                            $this->timestamp,                            $this->random);        $api->addParameter('uid', $uid);        return $api->getQuery();    } 
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: не работает friends.getAppUsers у меня

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

Terranus
Не все методы можно использовать с сервера.
http://vkontakte.ru/developers.php?o=-1 ... etAppUsers - там не написано, что этот метод можно вызывать с сервера.
Nick Lisogor
FL Team
FL Team
Сообщения: 119
Зарегистрирован: 12 дек 2010, 14:08

Re: не работает friends.getAppUsers у меня

Сообщение Nick Lisogor »

Здравствуйте, решил не засорять форум темой, поэтому написал в похожей.
Объясняю мою ситуацию. У меня есть flash приложение, которое должно получать список id друзей пользователя, играющих в приложение и отправлять их на сервер. Я попробовал реализовать эту идею через метод friends.getAppUsers() , преобразовать полученный массив в XML список и отправить на обработку в php скрипт. При тесте PHP скрипт работал нормально (проверял методом подстановки данных) , но с flash частью у меня возникли проблемы. Ошибок не было, но и приложение не работало. По моим предположениям проблема в получении списка id друзей. Вот фрагмент кода получения:

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

        //Получаем всех друзей пользователя, которые играют в приложение        public function getFriendsStat():void {                        friends_uids_loader = new URLLoader();                        var friends_uids_query = api.friends.getAppUsers();            var friends_uids_request=new URLRequest(friends_uids_query);            friends_uids_loader.addEventListener(Event.COMPLETE, onFriendsUidsLoaded);            friends_uids_loader.load(friends_uids_request);        }                //Получаем данные профилей друзей пользователя и отправляем их на сервер        public function onFriendsUidsLoaded(e:Event):void {                        //Функция запустилась, поэтому слушатель удаляем            friends_uids_loader.removeEventListener(Event.COMPLETE, onFriendsUidsLoaded);                        //Сохраняем данные друзей в переменную            var friends_profiles_XML = XML(friends_uids_loader.data);                        //Создаем XML список id пользователей            var friends_uids = '<?xml version=\"1.0\" encoding=\"UTF-8\"?><list>';            //for (var i:int=0; i<friends_profiles_XML.children().length();i++) {            for (var i:int=0; i<friends_profiles_XML.uid[i].length();i++) {                //friends_uids.appendText('<uid id='+friends_profiles_XML.children()[i].toString()+'/>');                friends_uids.appendText('<uid id='+friends_profiles_XML.uid[i].toString()+'/>');            }            friends_uids.appendText('</list>');                        //Задаем формат строки            var uids_list:String = ''+friends_uids;                        //Создаем запрос на получение списка очков нужных нам друзей            get_data_loader = new URLLoader();            get_data_request=new URLRequest("http://localhost/send_uids.php");            get_data_request.method=URLRequestMethod.POST;            get_data_vars = new URLVariables();            get_data_vars['auth_key']=wrapper.application.parameters.auth_key;            get_data_vars['viewer_id']=wrapper.application.parameters.viewer_id;            get_data_vars['uids_list']=uids_list;            get_data_request.data=get_data_vars;                        //Создаем слушатель, который выполнит функцию по окончанию запроса            get_data_loader.addEventListener(Event.COMPLETE, onCompletexml);                        //Загружаем запрос            get_data_loader.load(get_data_request);        }
Думаю, сам код понятен. Само мое приложение еще не одобрено так, как оно в стадии тестов, возможно из-за этого приложение не работает, тестовый "друг" один, он же и второй администратор приложения. Вот, собственно, и все. Буду очень признателен за помощь!
Ответить