Список друзей онлайн (friends.getOnline)

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!

Список друзей онлайн (friends.getOnline)

Сообщение Александр » 16 апр 2011, 16:45

Список друзей онлайн (friends.getOnline)
APIConnection, ActionScript 3.0 (Adobe Flash CS5)

В этом уроке вы узнаете как получить список ID друзей онлайн.
Работа с этим методом аналогична работе с методом friends.get без параметров fields. Полученный ответ обрабатывается так же.


Код файла Main.as
  1. /*
  2.  
  3. http://flapps.ru/forum/ - форум о создании приложений
  4.  
  5. */
  6. package
  7. {
  8.     import flash.display.Sprite;
  9.     import flash.text.*;
  10.     import flash.events.*;
  11.     import vk.APIConnection;
  12.     import vk.events.*;
  13.     import vk.ui.VKButton;
  14.  
  15.     public class Main extends Sprite
  16.     {
  17.         public var api_id:Number;
  18.         public var viewer_id:Number;
  19.         public var sid:String;
  20.         public var secret:String;
  21.         public var frOnlineCount; // количество друзей
  22.         public var friendsOnline = new Array();// массив id друзей
  23.  
  24.         public function Main()
  25.         {
  26.             // получаем flashVars
  27.             var flashVars:Object = stage.loaderInfo.parameters as Object;
  28.             // присваиваем переменным значения из flashVars
  29.             api_id = flashVars['api_id'];
  30.             viewer_id = flashVars['viewer_id'];
  31.             sid = flashVars['sid'];
  32.             secret = flashVars['secret'];
  33.  
  34.             // для тестирования локально, вводим свои данные здесь и раскоменчиваем код
  35.             /*flashVars['api_id'] = 1728947;
  36.             flashVars['viewer_id'] = 1306422;
  37.             flashVars['sid'] = 'a1006fd1e8gb9bd669e1119280166bc6cb9110b8a111550333bf041301';
  38.             flashVars['secret'] = '7ef8l6a4p8';
  39.             */
  40.  
  41.             // инициализация
  42.             var VK:APIConnection = new APIConnection(flashVars);
  43.             // выполняем запрос получения списка друзей
  44.             VK.api('friends.getOnline', {}, friendsLoaded, onError);
  45.             // если нужно узнать список друзей конкретного пользователя, то нужно передать id
  46.             // VK.api('friends.get', {uid:'1'}, friendsLoaded, onError);
  47.         }
  48.  
  49.         // данные получены
  50.         private function friendsLoaded(data: Object):void
  51.         {
  52.             // обрабатываем полученный ответ
  53.             // часто список id друзей нужно не просто вывести, а использовать в разных частях приложения, поэтому запишем список id друзей в массив
  54.  
  55.             frOnlineCount = data.length;  // узнаем количество друзей
  56.  
  57.             for (var i=0; i<frOnlineCount; i++)
  58.             {
  59.                 friendsOnline.push(data[i]);
  60.             }
  61.  
  62.             // выводим список ID друзей в поле result_tf
  63.             for (i=0; i<frOnlineCount; i++)
  64.             {
  65.                 result_tf.appendText(friendsOnline[i] + "\n");
  66.             }
  67.         }
  68.  
  69.         // если произошла ошибка
  70.         private function onError(data: Object):void
  71.         {
  72.             result_tf.text = data.error_msg;
  73.         }
  74.     }
  75. }


Приложение должно быть включено.
Состояние: Приложение включено и видно всем.

Исходник Чтобы увидеть ссылку - зарегистрируйтесь
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

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

Google
 



Re: Список друзей онлайн (friends.getOnline)

Сообщение tcsayan » 25 апр 2011, 16:06

Добрый день, Александр.
Подскажите для получения допустим фото одного из друзей онлайн, необходимо полученный ID использовать в getProfiles или данные полученные getOnline будут содержать в себе поля(фото, имя, и т.д.) ?
tcsayan

 
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение Serge » 25 апр 2011, 18:53

tcsayan писал(а):Добрый день, Александр.
Подскажите для получения допустим фото одного из друзей онлайн, необходимо полученный ID использовать в getProfiles или данные полученные getOnline будут содержать в себе поля(фото, имя, и т.д.) ?

getProfiles.
friends.getOnline

Возвращает список идентификаторов, находящихся на сайте друзей, текущего пользователя.
http://sevenlines.com.ua - разработка и продвижение сайтов
Serge
WEB Team
WEB Team
 
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55
Благодарил (а): 2 раз.
Поблагодарили: 65 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение tcsayan » 25 апр 2011, 22:27

т.е. получаем массив идентификаторов друзей онлайн.
и потом циклом через getProfiles получаем поля каждого друга онлайн ?
tcsayan

 
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение Serge » 25 апр 2011, 22:44

tcsayan писал(а):т.е. получаем массив идентификаторов друзей онлайн.
и потом циклом через getProfiles получаем поля каждого друга онлайн ?

Нельзя сделать более 3-х запросов к АПИ в секунду, цикл будет быстрее. (В общем если делать в цикле getProfiles выведет информацию по 2-м друзьям)
Через friengs.getOnline получаем список, потом его надо передать в getProfiles (до 1000 uid за раз), а цикл уже в обработке результата.
http://sevenlines.com.ua - разработка и продвижение сайтов
Serge
WEB Team
WEB Team
 
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55
Благодарил (а): 2 раз.
Поблагодарили: 65 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение tcsayan » 25 апр 2011, 23:07

Спасибо большое за помощь.
Через friengs.getOnline получаем список, потом его надо передать в getProfiles (до 1000 uid за раз) - не понял как передать одним махом всех в get.Profiles.

так я через i всех перебираю:
  1. VK.api('getProfiles', {uids: data[i],fields:'first_name, last_name, photo_big' }, onOnlineFriendLoaded, onOnlineFriendLError);


А как сразу всех ?
tcsayan

 
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение tcsayan » 26 апр 2011, 00:35

конструкция:
  1. VK.api('getProfiles', {uids: data,fields:'first_name, last_name, photo_big' }, onOnlineFriendLoaded, onOnlineFriendLError);

НЕ РАБОТАЕТ... возвращает ошибку
tcsayan

 
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение tcsayan » 26 апр 2011, 00:45

Все извиняюсь, понял сам массив надо сконвертировать в строку.
Спасибо.
tcsayan

 
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение Deniska » 23 ноя 2011, 00:00

Можно узнать кто онлайн в приложении этим методом?
Аватара пользователя
Deniska

 
Сообщения: 654
Зарегистрирован: 30 окт 2009, 00:07
Благодарил (а): 15 раз.
Поблагодарили: 48 раз.

Re: Список друзей онлайн (friends.getOnline)

Сообщение gaponj88 » 23 ноя 2011, 08:33

Неа ;)
Аватара пользователя
gaponj88

 
Сообщения: 433
Зарегистрирован: 21 окт 2011, 12:26
Благодарил (а): 20 раз.
Поблагодарили: 26 раз.

След.

Вернуться в Уроки по использованию ВКонтакте API



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

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