Re: Список друзей, не установивших приложение
Добавлено: 24 сен 2012, 15:27
Как вывести друзей которые установили приложение?
Форум о создании приложений
https://flapps.ru/forum/
Тоже хочу это найти!!!ToresMax писал(а):Как вывести друзей которые установили приложение?
Это не искать надо, а взять и сделать. В этом уроке все подробно расписано, как получить список всех друзей и список друзей в приложении, как вычеркнуть из общего списка тех, кто установил приложение.Mihailow_du писал(а):Тоже хочу это найти!!!ToresMax писал(а):Как вывести друзей которые установили приложение?
Только что бы массив всех друзей забился на два списка (два столбца):
в одном перечень тех кто в приложении, а в соседнем кто еще не поставил...
Щас выложуToresMax писал(а):Как вывести друзей которые установили приложение?
Код: Выделить всё
window.onload = (function() { VK.init(function() { // узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars var _parts=document.location.search.substr(1).split("&"); var _flash_Vars={}, _curr; for (i=0; i<_parts.length; i++) { _curr = _parts[i].split('='); // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1; _flash_Vars[_curr[0]] = _curr[1]; } // получаем viewer_id из полученных переменных var viewer_iid = _flash_Vars['viewer_id'];VK.api("users.get", {uids:viewer_iid,fields:"photo_medium"}, function(_data) { // обрабатываем полученные данные // выводим имя и фамилию в блок user_info document.getElementById('user__info').innerHTML = _data.response[0].first_name + ' ' + _data.response[0].last_name + '<br />'; // создаем img, для отображения аватарки var image=document.createElement('img'); // из полученных данных берем ссылку на фото image.src=_data.response[0].photo_medium; // добавляем img в блок user_info user_info.appendChild(image); }); // выполняем запрос получения списка друзей VK.api("friends.get", {}, function(dataAllFriends) { // после получения списка друзей, выполняем запрос получения списка друзей установивших приложение VK.api("friends.getAppUsers", {}, function(dataAppUsers) { // узнаем количество друзей var frCount = dataAllFriends.response.length; // количество установивших приложение var appCount = dataAppUsers.response.length; // создаём массив друзей, которые не установили приложение var noApp = dataAllFriends.response; // cначала записываем всех друзей в массив, дальше будем удалять из него установивших var App = dataAppUsers.response; if (appCount<frCount) { // если все друзья установили, то нет смысла и проверять // кол-во установивших приложение никогда не будет больше чем общее количество друзей, поэтому в первом цикле будем пробегаться по массиву установивших for (i=0;i<appCount;i++) { for(j=0;j<frCount;j++){ // если нашли в массиве всех друзей тот, который в списке установивших - удаляем if (dataAppUsers.response[i]==noApp[j]) { // вырезаем такой id noApp.splice(j,1); // прерываем цикл. Перебирать дальше нет смысла. break; } } } } // теперь в массиве noApp храняться id друзей, которые не установили приложение var noAppCount = noApp.length; document.getElementById('uids_count').innerHTML = 'друзья которые не установили: ' + noAppCount; // выведем ссылки на профили трех из этих пользователей // смысл получать профили есть только если массив пользователей не пустой if (noAppCount>0) { // если не установили приложение менее 4х друзей, то выведем только их if (noAppCount<2) { // просто превращаем массив пользователей в строку var noAppUids = noApp.join(','); } else { // выбираем случайных трёх, причем исключаем вероятность выбора одного и того же пользователя // сделаем это так: выберем одного и удалим его из массива и т.д. var uidCount = 1; // количество профилей var uidArr = []; // в этот массив запишем id for (i=0;i<uidCount;i++) { var max = noApp.length-1; var rand = Math.floor(Math.random()*max); uidArr.push(noApp[rand]); noApp.splice(rand,1); } // превращаем массив в строку noAppUids = uidArr.join(','); } var ApppCount = Appp.length; document.getElementById('uids_count_vigre').innerHTML = 'Которые установили: ' + ApppCount; if (ApppCount>0) { if (ApppCount<4) { var ApppUids = Appp.join(','); } else { var uidpCount = 20; var uidpArr = []; for (i=0;i<uidpCount;i++) { var pmax = Appp.length-1; var prand = Math.floor(Math.random()*pmax); uidpArr.push(Appp[prand]); Appp.splice(rand,1); } ApppUids = uidpArr.join(','); } VK.api("getProfiles", {uids:noAppUids,fields:"photo_rec"}, function(data) { // узнаем количество полученных профилей var profilesCount = data.response.length; // в эту переменную запишем html код для вывода списка пользователей var profilesStr = ''; for (var i=0; i<profilesCount; i++) { profilesStr += '<a href="http://vk.com/id' + data.response[i].uid + '" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '" target="_blank"><img src="' + data.response[i].photo_rec + '" /></a> '; } document.getElementById('friends_list').innerHTML = profilesStr; // var pprofilesCount = pdata.response.length; var pprofilesStr = ''; for (var i=0; i<pprofilesCount; i++) { pprofilesStr += '<a href="http://vk.com/id' + pdata.response[i].uid + '" title="' + pdata.response[i].first_name + ' ' + pdata.response[i].last_name + '" target="_blank"><img src="' + pdata.response[i].photo_rec + '" /></a> '; } document.getElementById('friends_list_vigre').innerHTML = pprofilesStr; }); } }); }); });});
Код: Выделить всё
var ApppCount = Appp.length;