Вывод списка друзей в приложении (getFriends и getProfiles)

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
agni
Сообщения: 100
Зарегистрирован: 07 июн 2010, 11:04

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение agni »

 
agni писал(а):хочу выполнить отладку
на сайте приложение отключил, в коде поменял следующее

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

package {   import flash.net.*;   import flash.display.*;   import flash.events.*;   import flash.text.*;   import vk.VkApiNode;    public class Main extends Sprite {      private var api_id:Number=xxxxxxxx;// id моего приложения      private var api_secret:String="xxxxxxxx";// секретный ключ      private var api:VkApiNode;      private var viewer_id;      private var server_url;      private var url_loader:URLLoader;      private var url_request:URLRequest;      private var query:String;       public function Main():void {         //viewer_id=LoaderInfo(root.loaderInfo).parameters.viewer_id;         // определяем адрес сервиса API (vkontakte.ru или vk.com)         server_url = LoaderInfo(root.loaderInfo).parameters.api_url + '?';         viewer_id=11466146;         trace('server_url='+server_url);//строка почему то  ничего не выдаёт, должно показать что-то вроде этого: server_url=[object Object]         // создаем и выполняем запрос         api=new VkApiNode(viewer_id,api_id,api_secret,true,'XML','2.0',server_url);//здесь ставлю true чтобы в запрос ушло test_mode=1         query=api.getFriends();         url_request=new URLRequest(query);         url_loader=new URLLoader  ;         url_loader.addEventListener(Event.COMPLETE,friendsLoaded);         url_loader.load(url_request);      }
в output пишет следующее:

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

server_url=undefined?Error #2044: Необработанный ioError:. text=Error #2032: Ошибка потока. URL: file:///C|/friend%5Flist/undefined?api_id=1898163&format=XML&method=getFriends&random=7327&test_mode=1&v=2.0&sig=96b69b00f4a8d0a5e3c724e9819628e1    at Main()[C:\friend_list\Main.as:28]
я так понимаю, ошибка из-за отсутствия результата в server_url?
что-то ещё надо изменить, чтобы включить отладку?
подставляю:

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

server_url='http://api.vkontakte.ru/api.php?';
отладка работает
как без этого обойтись? при отладке server_url может ли формироваться строкой:

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

 server_url = LoaderInfo(root.loaderInfo).parameters.api_url + '?';
?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

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

Danilka
Читай другие уроки на этом форуме и книги по ActionScript. У меня небыло необходимости делать то что ты хочешь, времени и желания сделать это за тебя у меня нет, поэтому готовый код я не могу дать.

agni

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

server_url = LoaderInfo(root.loaderInfo).parameters.api_url + '?';
Откуда у тебя приложение возьмет ссылку на сервер? Заменяй эту переменную на "http://api.vkontakte.ru/api.php?" как и viewer_id.
Или убери этот параметр, оставив его по умолчанию:

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

api=new VkApiNode(viewer_id,api_id,api_secret,true,'XML','2.0');
Danilka
Сообщения: 12
Зарегистрирован: 17 июн 2010, 08:24

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение Danilka »

Спасибо Александр за это:)
agni
Сообщения: 100
Зарегистрирован: 07 июн 2010, 11:04

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение agni »

надо вывести фотографию и имя-фамилию друзей в компоненте TileList
qwe_tl - компонент TileList
friend_list - мувиклип в библиотеке
title_txt - текстовое поле в friend_list
изменял только функцию profilesLoaded
с выведением имя-фамилия сложностей не возникло:

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

        public function profilesLoaded(event:Event):void        {            var responseFriendsProfiles:XML = new XML(url_loader.data);            for each (var user:XML in responseFriendsProfiles.*)            {                var temp:friend_list=new friend_list();                temp.width = 30;                temp.height = 30;                var stroka:String = user.first_name + ' ' + user.last_name;                temp.title_txt.text = stroka;                qwe_tl.addItem({source:temp});            }        }
при добавлении фотографии возникли проблемы:

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

public function profilesLoaded(event:Event):void        {            var responseFriendsProfiles:XML = new XML(url_loader.data);            for each (var user:XML in responseFriendsProfiles.*)            {                var photoLoader:Loader = new Loader();                var temp:friend_list=new friend_list();                var stroka:String = user.first_name + ' ' + user.last_name;                temp.title_txt.text = stroka;                var photo = user.photo_medium;                var request2:URLRequest = new URLRequest(photo);                photoLoader.load(request2);                photoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);                qwe_tl.addItem({source:temp});            }            function onLoaded(e:Event):void            {                photoLoader.x = 0;                photoLoader.y = 0;                temp.addChild(photoLoader);            }         }
компилирует без замечаний
при отладке TileList наполняет правильно
в title_txt.text выводится имя-фамилия друга
только фотография выводится у самого нижнего друга в списке

подскажите, плиз, что поправить :geek:
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

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

agni
Последняя фотография перекрывает другие.
В AS нельзя нормально загрузить фотографии в простом цикле. Нужно вызывать загрузку другой фотографии после события onLoaded. То есть цикл получиться через эту функцию.
Либо используй для загрузки фотографий UILoader.
catamount5
Сообщения: 63
Зарегистрирован: 10 авг 2010, 13:37

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение catamount5 »

Спасибо за урок!
То, что нужно - лаконично и понятно!
Superman
Сообщения: 38
Зарегистрирован: 11 апр 2010, 16:16

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение Superman »

А как сделать эти самые ссылки кликабельными?
А лучше, скажите пож-а, как передать id друга, на которого нажали в списке?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

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

Superman писал(а):А лучше, скажите пож-а, как передать id друга, на которого нажали в списке?

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

friends=friends+'<a href="event:'+user.uid+'">'+user.first_name+' '+user.last_name+'</a><br />';//-------------------- friends_tf.addEventListener(TextEvent.LINK, friendClick); function friendClick(event:TextEvent):void {    trace(event.text);}
Superman
Сообщения: 38
Зарегистрирован: 11 апр 2010, 16:16

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение Superman »

Александр, спасибо большое! Очень помогли:)
agni
Сообщения: 100
Зарегистрирован: 07 июн 2010, 11:04

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение agni »

подскажите, если друзей более 1000 - как запрос можно поделить на части?
Ответить