Страница 1 из 1

Too many requests per second

Добавлено: 09 ноя 2010, 17:48
garymar
Здравствуйте!

Столкнулся с такой проблемой. Я делаю выборку всех ID друзей, затем циклом перебираю и вытаскиваю аватарки этих друзей и засовываю в соответствующие мувики. Но проблема в том, то загружается не больше 4 друзей (аватарок). Далее в трейса пишет такое "Too many requests per second". Как выйти из такой неприятной ситуации подскажите..

Re: Too many requests per second

Добавлено: 09 ноя 2010, 18:44
Александр
В контакте есть ограничение на количество запросов в секунду к серверу api.
Ты можешь сделать выборку id и фотографий одним запросом getFriends с параметрами.

Re: Too many requests per second

Добавлено: 09 ноя 2010, 18:50
alexei
Можно еще http://vkontakte.ru/developers.php?o=-1&p=execute использовать.

Re: Too many requests per second

Добавлено: 09 ноя 2010, 19:15
garymar
Александр писал(а):В контакте есть ограничение на количество запросов в секунду к серверу api.
Ты можешь сделать выборку id и фотографий одним запросом getFriends с параметрами.
Как это можно реализовать. хоть пару строк кода можно написать ? Дело в том что мне нужно сделать выборку всех друзе которые установили данное приложениие.. Вконтакте есть такая АПИ функция friends.getAppUsers , но как реализовать в коде правильно???

Re: Too many requests per second

Добавлено: 09 ноя 2010, 21:13
Александр
garymar
Если только тех, кто установили, то запросом getFriends не получится.
Методом friends.getAppUsers вытаскивай id как и делаешь. Потом сделай список этих id через запятую и отправь в запросе getProfiles. Подобное описано в уроке Вывод списка друзей в приложении (getFriends и getProfiles).
friends.getFriends (без параметров) и friends.getAppUsers - возвращают одинаковую структуру.

Или используй execute, как написал alexei

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

code=return API.getProfiles({uids: API.getAppFriends(), fields: "photo"});

Re: Too many requests per second

Добавлено: 09 ноя 2010, 21:51
garymar
Я так понимаю, делается как-то так:

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

var perechen:string = "";for (var i:uint; i<response.uid.length(); i++)   {      if (i != (response.uid.length()-1))      {         perechen = perechen + response.uid[i] + ",";      }      else      {      perechen = perechen + response.uid[i];      }   }var sig:String=MD5.encrypt(viewer_id+'api_id='+api_id+'fields=photo_mediummethod=getProfilestest_mode='+test_mode+'uids='+perechen+'v=2.0'+api_secret);var request:URLRequest=new URLRequest("http://api.vkontakte.ru/api.php?api_id="+api_id+"&method=getProfiles&uids="+perechen+"&test_mode="+test_mode+"&fields=photo_medium&v=2.0&sig="+sig);loader_friend.load(request);
А дальше как вытаскивать поочерёдно аватарки?

Re: Too many requests per second

Добавлено: 09 ноя 2010, 22:58
Александр
garymar
Если используешь старую версию API, то почему бы не использовать библиотеку. С ней всё так как в уроке. Если не умеешь обрабатывать XML, то можешь немного логически посмотрев на код, вместо фамилии вывести фото.

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

            for each (var user:XML in responseFriendsProfiles.*) {                friends=friends+'<a href="http://vkontakte.ru/id'+user.uid+'">'+user.photo+'</a><br />';            }

Re: Too many requests per second

Добавлено: 09 ноя 2010, 23:33
garymar
Всё! Я по другому решил немного.. Работает.. Спасибо!!