Список друзей, не установивших приложение

Готовые уроки IFrame + ВКонтакте API

Re: Список друзей, не установивших приложение

Сообщение ToresMax » 24 сен 2012, 15:27

Как вывести друзей которые установили приложение?
ToresMax

 
Сообщения: 21
Зарегистрирован: 02 дек 2011, 18:13
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Список друзей, не установивших приложение

Сообщение Mihailow_du » 25 сен 2012, 15:47

ToresMax писал(а):Как вывести друзей которые установили приложение?


Тоже хочу это найти!!!

Только что бы массив всех друзей забился на два списка (два столбца):
в одном перечень тех кто в приложении, а в соседнем кто еще не поставил...
Не идите за мной - я сам заблудился...
Карта/справочник некоторых городов:
http://vk.com/app2170107 <-- входите!
Аватара пользователя
Mihailow_du

 
Сообщения: 63
Зарегистрирован: 24 янв 2012, 18:26
Откуда: Красноярск
Благодарил (а): 9 раз.
Поблагодарили: 0 раз.

Re: Список друзей, не установивших приложение

Сообщение Serge » 25 сен 2012, 16:55

Mihailow_du писал(а):
ToresMax писал(а):Как вывести друзей которые установили приложение?


Тоже хочу это найти!!!

Только что бы массив всех друзей забился на два списка (два столбца):
в одном перечень тех кто в приложении, а в соседнем кто еще не поставил...

Это не искать надо, а взять и сделать. В этом уроке все подробно расписано, как получить список всех друзей и список друзей в приложении, как вычеркнуть из общего списка тех, кто установил приложение.
http://sevenlines.com.ua - разработка и продвижение сайтов
Serge
WEB Team
WEB Team
 
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55
Благодарил (а): 2 раз.
Поблагодарили: 65 раз.

Re: Список друзей, не установивших приложение

Сообщение andrei2295kmail » 26 сен 2012, 17:11

ToresMax писал(а):Как вывести друзей которые установили приложение?

Щас выложу
andrei2295kmail

 
Сообщения: 188
Зарегистрирован: 07 ноя 2011, 10:51
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Список друзей, не установивших приложение

Сообщение Minimalgift » 20 ноя 2012, 15:42

Интересует вопрос, писал скрипт для вывода аватарки пользователя, имени и фамилии, друзей которые не установили, и отдельно друзей которые установили приложение. Получилось только: аватарка, имя, фамилия, друзья которые не установили. При попытке прикрутить в этот же скрипт, друзей,которые установили приложении, то он, отказывается работать. Вот скрипт:
  1. window.onload = (function() {
  2.     VK.init(function() {
  3.     // узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars
  4.     var _parts=document.location.search.substr(1).split("&");
  5.     var _flash_Vars={}, _curr;
  6.     for (i=0; i<_parts.length; i++) {
  7.         _curr = _parts[i].split('=');
  8.         // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1;
  9.         _flash_Vars[_curr[0]] = _curr[1];
  10.     }
  11.    
  12.     // получаем viewer_id из полученных переменных
  13.     var viewer_iid = _flash_Vars['viewer_id'];
  14. VK.api("users.get", {uids:viewer_iid,fields:"photo_medium"}, function(_data) {
  15.         // обрабатываем полученные данные
  16.         // выводим имя и фамилию в блок user_info
  17.         document.getElementById('user__info').innerHTML = _data.response[0].first_name + ' ' + _data.response[0].last_name + '<br />';
  18.         // создаем img, для отображения аватарки
  19.         var image=document.createElement('img');
  20.         // из полученных данных берем ссылку на фото
  21.         image.src=_data.response[0].photo_medium;
  22.         // добавляем img в блок user_info
  23.         user_info.appendChild(image);
  24.     });
  25.         // выполняем запрос получения списка друзей
  26.         VK.api("friends.get", {}, function(dataAllFriends) {
  27.             // после получения списка друзей, выполняем запрос получения списка друзей установивших приложение
  28.             VK.api("friends.getAppUsers", {}, function(dataAppUsers) {
  29.                                      
  30.                     // узнаем количество друзей
  31.                     var frCount = dataAllFriends.response.length;
  32.                     // количество установивших приложение
  33.                     var appCount = dataAppUsers.response.length;
  34.                    
  35.                     // создаём массив друзей, которые не установили приложение
  36.                     var noApp = dataAllFriends.response; // cначала записываем всех друзей в массив, дальше будем удалять из него установивших
  37.                     var App = dataAppUsers.response;
  38.                                        
  39.                    
  40.                     if (appCount<frCount) { // если все друзья установили, то нет смысла и проверять
  41.                         // кол-во установивших приложение никогда не будет больше чем общее количество друзей, поэтому в первом цикле будем пробегаться по массиву установивших
  42.                         for (i=0;i<appCount;i++) {
  43.                             for(j=0;j<frCount;j++){
  44.                                 // если нашли в массиве всех друзей тот, который в списке установивших - удаляем
  45.                                 if (dataAppUsers.response[i]==noApp[j]) {
  46.                                     // вырезаем такой id
  47.                                     noApp.splice(j,1);
  48.                                     // прерываем цикл. Перебирать дальше нет смысла.
  49.                                     break;
  50.                                 }
  51.                             }
  52.                         }
  53.                     }
  54.                    
  55.                     // теперь в массиве noApp храняться id друзей, которые не установили приложение
  56.                     var noAppCount = noApp.length;
  57.                     document.getElementById('uids_count').innerHTML = 'друзья которые не установили: ' + noAppCount;
  58.                     // выведем ссылки на профили трех из этих пользователей
  59.                     // смысл получать профили есть только если массив пользователей не пустой
  60.                     if (noAppCount>0) {                
  61.                         // если не установили приложение менее 4х друзей, то выведем только их
  62.                         if (noAppCount<2) {
  63.                             // просто превращаем массив пользователей в строку
  64.                             var noAppUids = noApp.join(',');
  65.                         } else {
  66.                             // выбираем случайных трёх, причем исключаем вероятность выбора одного и того же пользователя
  67.                             // сделаем это так: выберем одного и удалим его из массива и т.д.
  68.                             var uidCount = 1; // количество профилей
  69.                             var uidArr = []; // в этот массив запишем id
  70.                            
  71.                             for (i=0;i<uidCount;i++) {
  72.                                 var max = noApp.length-1;
  73.                                 var rand = Math.floor(Math.random()*max);
  74.                                 uidArr.push(noApp[rand]);
  75.                                 noApp.splice(rand,1);
  76.                             }
  77.                             // превращаем массив в строку
  78.                             noAppUids = uidArr.join(',');
  79.                         }
  80.                         var ApppCount = Appp.length;
  81.                         document.getElementById('uids_count_vigre').innerHTML = 'Которые установили: ' + ApppCount;
  82.                         if (ApppCount>0) {                
  83.  
  84.                         if (ApppCount<4) {
  85.  
  86.                             var ApppUids = Appp.join(',');
  87.                         } else {
  88.  
  89.                             var uidpCount = 20;
  90.                             var uidpArr = [];
  91.                            
  92.                             for (i=0;i<uidpCount;i++) {
  93.                                 var pmax = Appp.length-1;
  94.                                 var prand = Math.floor(Math.random()*pmax);
  95.                                 uidpArr.push(Appp[prand]);
  96.                                 Appp.splice(rand,1);
  97.                             }
  98.  
  99.                             ApppUids = uidpArr.join(',');
  100.                         }
  101.                        
  102.                         VK.api("getProfiles", {uids:noAppUids,fields:"photo_rec"}, function(data) {
  103.                             // узнаем количество полученных профилей
  104.                             var profilesCount = data.response.length;
  105.                            
  106.                             // в эту переменную запишем html код для вывода списка пользователей
  107.                             var profilesStr = '';
  108.                            
  109.                             for (var i=0; i<profilesCount; i++) {
  110.                                 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> ';
  111.                             }
  112.                             document.getElementById('friends_list').innerHTML = profilesStr;
  113.                             //
  114.                             var pprofilesCount = pdata.response.length;
  115.                            
  116.                             var pprofilesStr = '';
  117.                            
  118.                             for (var i=0; i<pprofilesCount; i++) {
  119.                                 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> ';
  120.                             }
  121.                             document.getElementById('friends_list_vigre').innerHTML = pprofilesStr;
  122.                         });
  123.                     }
  124.             });
  125.         });
  126.     });
  127. });
Думаю что где-то переменные повторяются, только не могу найти где именно. Надеюсь на Вашу помощь.
Minimalgift

 
Сообщения: 17
Зарегистрирован: 12 ноя 2012, 08:07
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.

Re: Список друзей, не установивших приложение

Сообщение Serge » 20 ноя 2012, 16:15

Minimalgift
если нажать F12 (в Хроме так точно) - откроется консоль ошибок.
Смутно подозреваю, что в яваскрипте нельзя начинать имя переменной с нижнего подчеркивания. А так в целом не смотрел, но Вам бы сначала разобраться, что вообще происходит, а не просто скопировать и переименовать.
http://sevenlines.com.ua - разработка и продвижение сайтов
Serge
WEB Team
WEB Team
 
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55
Благодарил (а): 2 раз.
Поблагодарили: 65 раз.

Re: Список друзей, не установивших приложение

Сообщение Minimalgift » 20 ноя 2012, 18:00

Serge
С нижним подчеркиванием все работает (вывод аватарки,имени,фамилии, список друзей которые не установили приложение). Ошибка возникает при подключении вывода людей которые установили приложение. Высвечивания ошибок для .js нет в браузере. Конфликт происходит скорее всего с одинаковыми переменными/функциями, которые я не могу найти и заменить имена.
Minimalgift

 
Сообщения: 17
Зарегистрирован: 12 ноя 2012, 08:07
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.

Re: Список друзей, не установивших приложение

Сообщение Serge » 20 ноя 2012, 18:39

Minimalgift

Ошибка тут, переменной Appp не существует.
Я бы вообще делал по-другому...
Сделать запрос к ВК за всеми френдами, потом за теми что установили приложение (ничего пока не меняется), а потом просто выводить инфо о них в разные блоки, в зависимости от того, уид в одном массиве или в обоих.
http://sevenlines.com.ua - разработка и продвижение сайтов
Serge
WEB Team
WEB Team
 
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55
Благодарил (а): 2 раз.
Поблагодарили: 65 раз.

Re: Список друзей, не установивших приложение

Сообщение Minimalgift » 20 ноя 2012, 18:51

Serge
Спасибо, попробую.
Minimalgift

 
Сообщения: 17
Зарегистрирован: 12 ноя 2012, 08:07
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.

Re: Список друзей, не установивших приложение

Сообщение Minimalgift » 20 ноя 2012, 21:58

Все, настроил скрипт для вывода тех кто не установил, тех кто установил и вывод данных о пользователе. Если кому надо - могу скинуть.
Minimalgift

 
Сообщения: 17
Зарегистрирован: 12 ноя 2012, 08:07
Благодарил (а): 5 раз.
Поблагодарили: 0 раз.

Пред.След.

Вернуться в Уроки IFrame ВКонтакте



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0