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

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

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

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

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

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


Код файла Main.as

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

/* http://flapps.ru/forum/ - форум о создании приложений */package {    import flash.display.Sprite;    import flash.text.*;    import flash.events.*;    import vk.APIConnection;    import vk.events.*;    import vk.ui.VKButton;     public class Main extends Sprite    {        public var api_id:Number;        public var viewer_id:Number;        public var sid:String;        public var secret:String;        public var frOnlineCount; // количество друзей        public var friendsOnline = new Array();// массив id друзей         public function Main()        {            // получаем flashVars            var flashVars:Object = stage.loaderInfo.parameters as Object;            // присваиваем переменным значения из flashVars            api_id = flashVars['api_id'];            viewer_id = flashVars['viewer_id'];            sid = flashVars['sid'];            secret = flashVars['secret'];             // для тестирования локально, вводим свои данные здесь и раскоменчиваем код            /*flashVars['api_id'] = 1728947;            flashVars['viewer_id'] = 1306422;            flashVars['sid'] = 'a1006fd1e8gb9bd669e1119280166bc6cb9110b8a111550333bf041301';            flashVars['secret'] = '7ef8l6a4p8';            */             // инициализация            var VK:APIConnection = new APIConnection(flashVars);            // выполняем запрос получения списка друзей            VK.api('friends.getOnline', {}, friendsLoaded, onError);            // если нужно узнать список друзей конкретного пользователя, то нужно передать id            // VK.api('friends.get', {uid:'1'}, friendsLoaded, onError);        }         // данные получены        private function friendsLoaded(data: Object):void        {            // обрабатываем полученный ответ            // часто список id друзей нужно не просто вывести, а использовать в разных частях приложения, поэтому запишем список id друзей в массив             frOnlineCount = data.length;  // узнаем количество друзей             for (var i=0; i<frOnlineCount; i++)            {                friendsOnline.push(data[i]);            }             // выводим список ID друзей в поле result_tf            for (i=0; i<frOnlineCount; i++)            {                result_tf.appendText(friendsOnline[i] + "\n");            }        }         // если произошла ошибка        private function onError(data: Object):void        {            result_tf.text = data.error_msg;        }    }}
Приложение должно быть включено.
Состояние: Приложение включено и видно всем.

Исходник http://flapps.ru/example/friends_get_online_uids.rar
tcsayan
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02

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

Сообщение tcsayan »

Добрый день, Александр.
Подскажите для получения допустим фото одного из друзей онлайн, необходимо полученный ID использовать в getProfiles или данные полученные getOnline будут содержать в себе поля(фото, имя, и т.д.) ?
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

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

Сообщение Serge »

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

Возвращает список идентификаторов, находящихся на сайте друзей, текущего пользователя.
tcsayan
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02

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

Сообщение tcsayan »

т.е. получаем массив идентификаторов друзей онлайн.
и потом циклом через getProfiles получаем поля каждого друга онлайн ?
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

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

Сообщение Serge »

tcsayan писал(а):т.е. получаем массив идентификаторов друзей онлайн.
и потом циклом через getProfiles получаем поля каждого друга онлайн ?
Нельзя сделать более 3-х запросов к АПИ в секунду, цикл будет быстрее. (В общем если делать в цикле getProfiles выведет информацию по 2-м друзьям)
Через friengs.getOnline получаем список, потом его надо передать в getProfiles (до 1000 uid за раз), а цикл уже в обработке результата.
tcsayan
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02

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

Сообщение tcsayan »

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

так я через i всех перебираю:

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

VK.api('getProfiles', {uids: data[i],fields:'first_name, last_name, photo_big' }, onOnlineFriendLoaded, onOnlineFriendLError);
А как сразу всех ?
tcsayan
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02

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

Сообщение tcsayan »

конструкция:

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

VK.api('getProfiles', {uids: data,fields:'first_name, last_name, photo_big' }, onOnlineFriendLoaded, onOnlineFriendLError);
НЕ РАБОТАЕТ... возвращает ошибку
tcsayan
Сообщения: 21
Зарегистрирован: 25 апр 2011, 16:02

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

Сообщение tcsayan »

Все извиняюсь, понял сам массив надо сконвертировать в строку.
Спасибо.
Аватара пользователя
Deniska
Сообщения: 653
Зарегистрирован: 30 окт 2009, 00:07

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

Сообщение Deniska »

Можно узнать кто онлайн в приложении этим методом?
Аватара пользователя
gaponj88
Сообщения: 433
Зарегистрирован: 21 окт 2011, 12:26

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

Сообщение gaponj88 »

Неа ;)
Ответить