Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.02.2012, 16:38
Agni вне форума Посмотреть профиль Отправить личное сообщение для Agni Найти все сообщения от Agni
  № 1  
Ответить с цитированием
Agni

Регистрация: Apr 2009
Сообщений: 141
По умолчанию размещение фото пользователя и фото друзей в приложении

следующий код работает, информацию о друзьях получает, но фото выводит только одно: любого из списка
подскажите, пожалуйста, что поправить:

Код AS3:
        public function menu():void
        {
            if (stage)
            {
                init();
            }
            else
            {
                addEventListener(Event.ADDED_TO_STAGE,init);
            }
        }
 
        function init(e:Event=null):void
        {
            var flashVars:Object = stage.loaderInfo.parameters as Object;
            api_id = flashVars['api_id'];
            viewer_id = flashVars['viewer_id'];
            sid = flashVars['sid'];
            secret = flashVars['secret'];
            var VK:APIConnection = new APIConnection(flashVars);
            VK.api('getProfiles',{uids:flashVars['viewer_id'],fields:'photo_medium'},onProfileLoaded,onError);
            VK.api('friends.getAppUsers',{},onFriendsLoaded,onError);
 
 
        	function onFriendsLoaded(data:Object):void
        	{
            	for (var i:int = 0; i < data.length; i++)
            	{
                	var uid_friend:int = new int  ;
                	uid_friend = data[i];
                	VK.api('getProfiles',{uids:uid_friend,fields:'photo_medium'},onFriendLoaded,onError);
            	}
        	}
		}
 
        private function onProfileLoaded(data:Object):void
        {
            fio_txt.text = data[0]['first_name'] + ' ' + data[0]['last_name'];
            var url:URLRequest = new URLRequest(data[0]['photo_medium']);
            loader.load(url);
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);
        }
 
        private function onLoaded(e:Event):void
        {
            addChild(loader);
        }
 
        private function onFriendLoaded(data:Object):void
        {
            var url:URLRequest = new URLRequest(data[0]['photo_medium']);
            loader2.load(url);
            loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded2);
        }
 
        private function onLoaded2(e:Event):void
        {
            loader2.x = 65 * ii;//в заголовке объявлено: var ii:int = 0;
            loader2.y = 0;
            addChild(loader2);
            ii++;
        }
Добавлено через 13 минут
следующий код также показывает только одну фото:

Код AS3:
        public function menu():void
        {
            if (stage)
            {
                init();
            }
            else
            {
                addEventListener(Event.ADDED_TO_STAGE,init);
            }
        }
 
        function init(e:Event=null):void
        {
            var flashVars:Object = stage.loaderInfo.parameters as Object;
            api_id = flashVars['api_id'];
            viewer_id = flashVars['viewer_id'];
            sid = flashVars['sid'];
            secret = flashVars['secret'];
            var VK:APIConnection = new APIConnection(flashVars);
            VK.api('friends.getAppUsers',{},onFriendsLoaded,onError);
 
 
        	function onFriendsLoaded(data:Object):void
        	{
            	for (var i:int = 0; i < data.length; i++)
            	{
                	var uid_friend:int = new int  ;
                	uid_friend = data[i];
                	VK.api('getProfiles',{uids:uid_friend,fields:'photo_medium'},onFriendLoaded,onError);
            	}
        	}
		}
 
        private function onFriendLoaded(data:Object):void
        {
            var url:URLRequest = new URLRequest(data[0]['photo_medium']);
            loader2.load(url);
            loader2.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded2);
        }
 
        private function onLoaded2(e:Event):void
        {
            loader2.x = 65 * ii;//в заголовке объявлено: var ii:int = 0;
            loader2.y = 0;
            addChild(loader2);
            ii++;
        }

Старый 12.02.2012, 20:51
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 2  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
Код AS3:
for (var i:int = 0; i < data.length; i++)
{
     var uid_friend:int = new int  ;
     uid_friend = data[i];
     VK.api('getProfiles',{uids:uid_friend,fields:'photo_medium'},onFriendLoaded,onError);
}
такое тут не подойдёт, запросы в ВК можно выполнять только 3 раза в секунду, а не в цикле. эт очень быстро

получайте сразу одним запросом friends.get данные о всех друзьях в том числе и ссылки на картинки

Старый 13.02.2012, 01:24
Happy вне форума Посмотреть профиль Отправить личное сообщение для Happy Найти все сообщения от Happy
  № 3  
Ответить с цитированием
Happy

Регистрация: Jan 2012
Сообщений: 7
А если не секрет как одним запросом "friends.getAppUsers" получить и id, и аватарки, и имена с фамилиями?

Старый 13.02.2012, 01:28
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 4  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
friends.getAppUsers возвращает только id друзей конкретного пользователя которые установили данное приложение
можно сначала узнать эти id затем использовать getProfiles где в параметре uids указать id к которым нужно получить данные (аватарки, и имена с фамилиями)

Старый 13.02.2012, 01:44
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 5  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Либо execute попробуйте.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 13.02.2012, 01:56
Happy вне форума Посмотреть профиль Отправить личное сообщение для Happy Найти все сообщения от Happy
  № 6  
Ответить с цитированием
Happy

Регистрация: Jan 2012
Сообщений: 7
Цитата:
friends.getAppUsers возвращает только id друзей конкретного пользователя которые установили данное приложение
можно сначала узнать эти id затем использовать getProfiles где в параметре uids указать id к которым нужно получить данные (аватарки, и имена с фамилиями)
Я так и делаю, но вы говорите, что
Цитата:
запросы в ВК можно выполнять только 3 раза в секунду, а не в цикле. эт очень быстро
. Я думал что из за этого друзья выводятся не всегда корректно.
Но ведь как-нибудь можно вывести сразу много друзе или нет?

Старый 13.02.2012, 08:01
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 7  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
использовать getProfiles где в параметре uids указать id к которым нужно получить данные, тоесть я имел ввиду все id которые вам нужно
Код AS3:
private function getProfile(): void 
{
	var profileFields: String;
        var userIDs: String;
        profileFields = "first_name, last_name, screen_name, photo_medium_rec";
        userIDs = "234934,324534,453523,35325,23535"; //id друзей полученные методом friends.getAppUsers
	VK.api("getProfiles", {uids: userIDs, fields: profileFields}, 
				    getProfileTrue, getProfileFalse); 
}


Последний раз редактировалось ЗлОй ПрОграММер; 13.02.2012 в 08:04.
Старый 13.02.2012, 14:26
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 8  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
А execute попробовали? :о)
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 13.02.2012, 18:09
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 9  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
GBee а можете пример накатать) оч интересно, и разве execute может одновременно вернуть список друзей в приложении и профили всех этих друзей ?
я ток независимые запросы умею делать, скажем получить свой профиль и одновременно список друзей

Старый 13.02.2012, 19:56
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 10  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Код AS3:
var req:String = 'return API.getProfiles({"uids":API.friends.getAppUsers()})';
Добавлено через 6 минут
Так можно в первый запрос пихнуть:
Код AS3:
method=execute&code=return {"appFriends":API.getProfiles({"uids":API.friends.getAppUsers()})};
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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