Вывод друзей в Вконтакте

Использование API других социальных сетей

Вывод друзей в Вконтакте

Сообщение artsgtu » 02 дек 2012, 14:40

Всем Здравия!!!
У меня такая проблемка, на Flash(e) мне надо вывести друзей, те кто установили приложение и те кто не установил.

На сцене есть три текстовых поля: кол-во друзей, кол-во установивших и кол-во не установивших - это я сделал.
Два list(a) -в первом выводится кол-во не установивших, а во втором кол-во друзей установивших.

в первом у меня выводится весь список друзей, а мне надо те кто не установил.
во втором выводится id друзей, не знаю как сделать чтоб выводились имя и фамилия.

код Main.as
  1.  
  2.     package
  3.     {
  4. import flash.display.Sprite;
  5.     import flash.text.*;
  6.     import flash.events.*;
  7.     import vk.APIConnection;
  8.     import vk.events.*;
  9.     import vk.ui.VKButton;
  10.      import fl.data.DataProvider;
  11. import fl.controls.List;
  12.  
  13.  
  14.         public class Main extends Sprite
  15.         {
  16.         public var api_id:Number;
  17.         public var viewer_id:Number;
  18.         public var sid:String;
  19.         public var secret:String;
  20.         public var frCount;// количество друзей
  21.         public var AppfrCount;
  22.         public var friendsOnApp = new Array();;
  23.         public var dpApp:DataProvider = new DataProvider();
  24.                    
  25.                  
  26.             public function Main()
  27.             {
  28.                 // получаем flashVars
  29.                 var flashVars:Object = stage.loaderInfo.parameters as Object;
  30.                 // присваиваем переменным значения из flashVars
  31.                 api_id = flashVars['api_id'];
  32.                 viewer_id = flashVars['viewer_id'];
  33.                 sid = flashVars['sid'];
  34.                 secret = flashVars['secret'];
  35.      
  36.                // инициализация
  37.                 var VK:APIConnection = new APIConnection(flashVars);
  38.                
  39.  
  40.                  VK.api('friends.get', {fields:'first_name,last_name, uid'}, friendsLoaded, onError);
  41.                  VK.api('friends.getAppUsers',{}, getAppfriendsLoaded, onError);
  42.                  
  43.             }
  44.            
  45.             private function getAppfriendsLoaded(data: Object):void
  46.             {
  47.                  AppfrCount = data.length;  // узнаем количество друзей установших приложение
  48.                  resultyesApp_tf.text = 'Друзья установившие данное приложение: ' + AppfrCount + "\n";
  49.                  listnoApp_mc.dataProvider = dpApp;
  50.                  
  51.                
  52.  
  53.             for (var i=0; i<AppfrCount; i++)
  54.             {
  55.                 friendsOnApp.push(data[i]);
  56.             }
  57.  
  58.             // выводим список ID друзей в listnoApp_mc
  59.            for (i=0; i<AppfrCount; i++)
  60.             {
  61.                 dpApp.addItem({label:friendsOnApp[i]} );
  62.             }
  63.         }
  64.      
  65.           // данные получены
  66.         private function friendsLoaded(data: Object):void
  67.         {
  68.             // обрабатываем полученный ответ
  69.             frCount = data.length;// узнаем количество друзей
  70.             // выводим количество друзей в поле resultresultvsego_tf
  71.             resultresultvsego_tf.text = 'Всего у Вас друзей: ' + frCount + "\n";
  72.             var noApp = data.length;
  73.            
  74.             noApp = frCount - AppfrCount; //кол-во не установивших приложение
  75.             // выводим количество друзей в поле resultresultvsego_tf которые не установили приложение
  76.             resultnoApp_tf.text = 'Друзья не установившие данное приложение: ' + noApp + "\n";
  77.            
  78.            
  79.            
  80.             var dp:DataProvider = new DataProvider();
  81.             list_mc.dataProvider = dp;
  82.                
  83. // выводим список друзей в поле list_mc
  84.  
  85.             for (var i=0; i<frCount; i++)
  86.             {
  87.                
  88.                 dp.addItem({label:data[i].first_name+ ' ' + data[i].last_name} );
  89.             }
  90.            
  91.                    
  92.            
  93.         }
  94.        
  95. // если произошла ошибка
  96.         private function onError(data: Object):void
  97.         {
  98.             resultresultvsego_tf.text = data.error_msg;
  99.            
  100.         }
  101.        
  102.        
  103.  
  104.     }
  105.  
  106. }          
  107.            
  108.  
  109.  
  110.            
  111.        
  112.        
  113.    
  114.        
  115.  
  116.            
  117.        
  118.        
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
artsgtu

 
Автор темы
Сообщения: 2
Зарегистрирован: 01 дек 2012, 10:42
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Вывод друзей в Вконтакте

Сообщение Casperovskii » 02 дек 2012, 17:09

Нужно из всех друзей убрать сначала тех, кто установил, а потом уже выводить неустановивших.
Потом нужно запросить инфу о юзверях у контакта, передав ему массив пользлвателей и соотнеся ответ с вашим массивом. Не могу дать код, пишу с телефона. Если не разберетесь, позже смогу помочь.
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.

Re: Вывод друзей в Вконтакте

Сообщение artsgtu » 02 дек 2012, 17:17

Casperovskii писал(а):Нужно из всех друзей убрать сначала тех, кто установил, а потом уже выводить неустановивших.
Потом нужно запросить инфу о юзверях у контакта, передав ему массив пользлвателей и соотнеся ответ с вашим массивом. Не могу дать код, пишу с телефона. Если не разберетесь, позже смогу помочь.


Буду признателен за код, а то уже голова пухнет :D
artsgtu

 
Автор темы
Сообщения: 2
Зарегистрирован: 01 дек 2012, 10:42
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Вывод друзей в Вконтакте

Сообщение Casperovskii » 02 дек 2012, 23:35

Итак примерный код (ужасная версия, можно оптимизировать наверное):
  1. var friends:Array = new Array(); //массив айди друзей
  2. var friendWithoutApp:Array = new Array(); //друзья без приложения
  3. var friendWithApp:Array = new Array(); // друзья с приложением
  4. var appInstaled:Boolean = false;
  5. //код, когда мы получаем всех друзей и друзей, установивших пропущен, всех друзей записываем айдишники в массив "друзья"
  6. for (var i:int=0;i<friendWithoutApp.length;i++) {
  7.  appInstaled = false;
  8.  for (var j:int=0;j<friendWithApp.length;j++) {
  9.   if (friends[i]==friendWithApp[j]) { //если совпадают айди из всех друзей и друга с приложением, тогда ставим флажок что его не нужно добавлять в другую категорию
  10.   appInstaled=true;
  11.   }
  12.  if (!appInstaled) { friendWithoutApp.push(friends[i]); //если не установил, тогда добавляем в нужный массив
  13.  }
  14.  }
  15. }

За это сообщение автора Casperovskii поблагодарил:
artsgtu
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.


Вернуться в Программирование с использованием API: Мой Мир, FaceBook, Odnoklassniki и др.



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron