Тема: [Вконтакте] Ошибка friends.getAppUsers
Показать сообщение отдельно
Старый 08.03.2014, 21:20
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 10  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Вот не поленился, набросал класс:

Код AS3:
package  {
 
	import flash.display.MovieClip;
	import vk.APIConnection;
	import flash.net.URLRequest;
	import flash.display.Loader;
	import flash.text.TextField;
 
 
	public class Main extends MovieClip {
 
		private var VK:APIConnection;
		private var _appUsers:Object;
		private var _friends:Object;
 
 
		public function Main() {
			var flashVars:Object = stage.loaderInfo.parameters as Object;
 
			// Инициализация и загрузка всех друзей 
			VK = new APIConnection(flashVars);
			VK.api('friends.get', {fields:'first_name,last_name,photo_200_orig'}, loadFriends, onError);
		}
 
		private function loadFriends(response:Object):void {
			_friends = response;
 
			// Загрузка всех айди друзей, которые установили приложение
			VK.api('friends.getAppUsers', {}, loadAppFriends, onError);
		}
 
		private function loadAppFriends(response:Object):void {
			_appUsers = response;
 
			searchAppUsersData();
		}
 
		// Разбираем наши полученные объекты
		private function searchAppUsersData():void {
			var i:String;
			var i1:String;
			var idApp:String;
 
			// Поиск по всем айди наших друзей, установив. приложен.
			for (i in _appUsers) {
				idApp = _appUsers[i];
 
				// Поиск по конкретной айди
				for (i1 in _friends) {
 
					// Если найдена, то перезаписываем данные про друга
					if (_friends[i1].uid == idApp)
						_appUsers[i] = _friends[i1];
				}
			}
 
			//На выходе имеем _appUsers, в котором данные про нашых друзей {first_name,last_name,photo_200_orig}. Дальше нужно работать с ним.
		}
 
		// если произошла ошибка
        private function onError(data:Object):void {
            //
        }
 
	}
 
}
В вашем случае проблема была в том, что вы выбрали только айди друзей (в которых нет полей "photo" и т.д.), которые установили приложение. Вам же нужно еще и расширенную информацию о них. Это нужно делать отдельным запросом. После этого мы выбираем данные про друзей по айдишкам, которые нас интересуют.