Вывод списка друзей в приложении (getFriends и getProfiles)

Темы только для ознакомления. Уроки по использованию старой версии ВКонтакте API и устаревших методов.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Вывод списка друзей в приложении (getFriends и getProfiles)

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

Вывод списка друзей в приложении (методы getFriends и getProfiles)

Программирование на Action Script 3, в среде Adobe Flash CS4.

Для работы с ВКонтакте API, используется библиотека VkApi. http://vkontakte.ru/club10009135
Немного измененная библиотека, используемая в коде этого урока http://flapps.ru/example/vkApi.rar

1. Создаём Новый документ (Flash File).

2. Создаём динамическое текстовое поле и называем его "friends_tf".
В это поле будет загружен список друзей.
В свойствах этого поля выберите Behavior: Multiline.

3. Создаём новый as-файл (называем его Main.as). Сохраняем и подключаем его к ранее созданному fla файлу.
Если вы не знаете как подключить Main.as, то посмотрите как это было сделано в этом уроке http://flapps.ru/forum/topic9.html (Пункт 7).

4. В файле Main.as пишем код:

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

package {    import flash.net.*;    import flash.display.*;    import flash.events.*;    import flash.text.*;    import vk.VkApiNode;     public class Main extends Sprite {        private var api_id:Number=1728947;// id вашего приложения        private var api_secret:String="3wRTB1OZo9";// секретный ключ        private var api:VkApiNode;        private var viewer_id;        private var server_url;        private var url_loader:URLLoader;        private var url_request:URLRequest;        private var query:String;         public function Main():void {            viewer_id=LoaderInfo(root.loaderInfo).parameters.viewer_id;            // определяем адрес сервиса API (vkontakte.ru или vk.com)            server_url = LoaderInfo(root.loaderInfo).parameters.api_url + '?';                        // создаем и выполняем запрос            api=new VkApiNode(viewer_id,api_id,api_secret,false,'XML','2.0',server_url);            query=api.getFriends();            url_request=new URLRequest(query);            url_loader=new URLLoader  ;            url_loader.addEventListener(Event.COMPLETE,friendsLoaded);            url_loader.load(url_request);        }         public function friendsLoaded(event:Event):void {            // обрабатываем полученный ответ            var responseFriends:XML=new XML(url_loader.data);            if (responseFriends.error_code!=7) {// если доступ к списку друзей разрешен в настройках приложения                // создаём массив ID друзей                var all_friends:Array=new Array  ;                for each (var fid:XML in responseFriends.*) {                    all_friends.push(fid);                }                // получаем профили друзей, используя метод getProfiles                // ПРИМЕЧАНИЕ! Если друзей более 1000, то этот запрос нужно будет поделить на части, из-за ограничений метода getProfiles                var fields:Array=new Array  ;                fields=['first_name,last_name,photo_big'];// перечисленные через запятую поля, необходимые для получения                getProfiles(all_friends,fields);            } else {                friends_tf.text='Нет доступа к списку друзей';            }        }         public function getProfiles(uids:Array,fields:Array):void { // функция получения профилей            query=api.getProfiles(uids,fields);            url_request=new URLRequest(query);            url_loader=new URLLoader  ;            url_loader.addEventListener(Event.COMPLETE,profilesLoaded);            url_loader.load(url_request);        }         public function profilesLoaded(event:Event):void {            // обрабатываем и выводим список друзей в виде "Имя Фамилия" (ссылка)            var responseFriendsProfiles:XML=new XML(url_loader.data);            var friends='';            for each (var user:XML in responseFriendsProfiles.*) {                friends=friends+'<a href="http://vkontakte.ru/id'+user.uid+'">'+user.first_name+' '+user.last_name+'</a><br />';            }            friends_tf.htmlText=friends;        }    }}
Код прокомментирован. Если вам что-то не понятно, то можете спросить в этой теме.
Если вам ничего непонятно в этом коде, то лучше начните с изучения чего-то ещё более простого, т.к. причина непонимания кода в недостатке знаний, и даже если вам расписать каждую строчку, то вам не будет понятен весь код.

5. Сохраняем измененный Main.as и экспортируем приложение (Ctrl + Enter).

6. Загружаем приложение в контакт.
Если не знаете как загрузить в контакт готовый swf, то посмотрите как это было сделано в этом уроке http://flapps.ru/forum/topic9.html (Пункт 9).

7. Проверяем настройки приложения.
Состояние: Приложение включено и видно всем.
Контейнер приложения: Без использования контейнера.

В настройках приложения должен быть разрешен доступ к друзьям.


Теперь можно проверить как работает приложение.

Исходник приложения http://flapps.ru/example/getFriends.rar
DENISSISS
Сообщения: 7
Зарегистрирован: 02 янв 2010, 20:30

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение DENISSISS »

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

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение Deniska »

DENISSISS писал(а):Ждем исходника)
Всё ручками делайте, а не ждите пока вам уже по готовму коду сделают
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение VIP »

Спасибо за урок, жаль что без контейнера
Последний раз редактировалось VIP 24 янв 2010, 22:01, всего редактировалось 1 раз.
VIP
Сообщения: 252
Зарегистрирован: 24 ноя 2009, 18:10

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение VIP »

Ещё вопрос! А нормально если показывает только имя и фамилию? Без фотки?
Аватара пользователя
psix55
Модератор
Модератор
Сообщения: 1015
Зарегистрирован: 09 дек 2009, 17:16

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение psix55 »

Вот исходник: http://dump.ru/file/4211060
Нормально
Скачайте исходник и посмотрите))
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

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

VIP
Код посмотри хотя бы... там нет подгрузки фотографии.
VITAL
Сообщения: 34
Зарегистрирован: 29 дек 2009, 13:32

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение VITAL »

Не моглибы вы дать ссылку на приложение в контакте с этими методами.

По этим исодникам просто у меня ничего не показвает(((
oleg_D600E
Сообщения: 20
Зарегистрирован: 24 дек 2009, 20:12

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

Сообщение oleg_D600E »

Не кто не видел такого урока в as2 или может у кого исходник есть выложите пожалуйста буду очень признателен.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод списка друзей в приложении (getFriends и getProfiles)

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

VITAL
Лучше дай ссылку на то что ты сделал и загрузил в контакт. Исходник рабочий, нужно только изменить api_id и api_secret.
Ответить