Помогите с кодом вывода друзей!

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: Помогите с кодом вывода друзей!

Сообщение gpv123 »

:shock: Для каждого отдельного друга отдельный запрос? А если друзей в приложении тысячи?
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Помогите с кодом вывода друзей!

Сообщение sanych_dv »

gpv123 писал(а)::shock: Для каждого отдельного друга отдельный запрос? А если друзей в приложении тысячи?
Никаких проблем, вывод в json через mysql_fetch_array и gzcompress данных.
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Помогите с кодом вывода друзей!

Сообщение Casperovskii »

gpv123 писал(а):А вот этот код должен работать нормально:

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

var quantity:int = 0; var arr:Array = [];var friends:Array = [];var index:int = 0; vkBase.API('execute', {code:'return API.users.get({uids:API.friends.getAppUsers(),fields:"photo"});'}, loadFriends, printError); function loadFriends(response:Array):void{    if (response.length)    {        quantity = response.length > 6 ? 6 : response.length;                for (var i:int = 0; i < quantity; i++)        {            arr.push([new Loader, new TextField]);            arr[i][0].x = arr[i][1].x = 65 + 115 * i;            arr[i][0].y = (arr[i][1].y = 575) - 50;            arr[i][0].addEventListener(MouseEvent.CLICK, onClick);            addChild(arr[i][0]);            addChild(arr[i][1]);        }                   friends = response;        initFriends();    }}     function printError(error:Object):void{    var tf:TextField = new TextField();    tf.x = 100;    tf.y = 100;    tf.width = 300;    tf.height = 300;    tf.text = error.error_msg;        while (numChildren) removeChildAt(numChildren - 1);    addChild(tf);}     function onClick(e:MouseEvent):void{    navigateToURL(new URLRequest('http://vk.com/id' + friends[index + (e.target.x - 65) / 115].uid), '_blank');}     function initFriends():void{    if (index < 0) index = 0;    else if (index + quantity - 1 > friends.length) index = friends.length - quantity - 1;        for (var i:int = 0; i < quantity; i++)    {        arr[i][0].load(new URLRequest(friends[index + i].photo));        arr[i][1].text = friends[index + i].first_name;    }}     function toLeft(e:* = null):void //перелистывание влево{    index -= quantity - 1;    initFriends();}     function toRight(e:* = null):void // перелистывание вправо{    index += quantity - 1;    initFriends();}
Хм, у меня не фурычит тот вариант, что предложен в цитате (работать - работает, но сцена девственно пуста). Заменил строку

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

vkBase.API('execute', {code:'return API.users.get({uids:API.friends.getAppUsers(),fields:"photo"});'}, loadFriends, printError);
на

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

VK.api('friends.getAppUsers', { uids: flashVars['viewer_id'],fields:'photo,first_name' }, loadFriends, printError);
и мне выдает ошибку "Нет доступа к этой функции". (Приложение еще не проходило проверку, но тестирую я с себя).
В чем косяк то? И как же все-таки вывести эту ленту?
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: Помогите с кодом вывода друзей!

Сообщение gpv123 »

Casperovskii

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

VK.api('execute', {code:'return API.users.get({uids:API.friends.getAppUsers(),fields:"photo"});'}, loadFriends, printError);
Изображение
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Помогите с кодом вывода друзей!

Сообщение Casperovskii »

Не помогло. Приложение точно установлено у троих друзей, оно включено и видно всем. В чем могут быть проблемы? Запрос к Апи я выполняю в конструкторе главной формы. Может ли быть ошибка в этом? Или она где-то еще?
Casperovskii
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50

Re: Помогите с кодом вывода друзей!

Сообщение Casperovskii »

Ой дурак я был. Забыл поставить доступ к друзьям у приложения. Всем спасибо, все работает!
Аватара пользователя
tamerlankyros
Сообщения: 34
Зарегистрирован: 11 июл 2012, 00:38

Re: Помогите с кодом вывода друзей!

Сообщение tamerlankyros »

sanych_dv писал(а):В PHP:

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

 $id = $_POST['id'];$level = mysql_result(mysql_query("SELECT level FROM users WHERE id='$id'"), 0);$json = '{"id" : ' . $id . ', "level" : ' . $level . '}';echo $json; 
В AS3:

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

   function viewlevel2(e:Event):void {             // выводим уровень пользователя             var jsonObj:Object = JSON.parse(e.currentTarget.data);             response[jsonObj.id].level = jsonObj.level;            response.sortOn('level', Array.NUMERIC);   } 
Спасибо все вроде бы понял, кроме одного, как потом вывести уровень на экран(в текстовое поле)??
Ответить