Отправка уведомлений (showRequestBox). При клике на фото

Готовые уроки IFrame + ВКонтакте API
Аватара пользователя
BIOS
КИДАЛА!
Сообщения: 68
Зарегистрирован: 04 ноя 2009, 10:43

Отправка уведомлений (showRequestBox). При клике на фото

Сообщение BIOS »

Взял данную тему за основу =) http://flapps.ru/forum/topic3484.html

Кому то будет полезно

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

<html><head><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script><script type="text/javascript" charset="cp1251" >window.onload = (function() {    VK.init(function() {        // выполняем запрос получения списка друзей        VK.api("friends.get", {}, function(dataAllFriends) {            // после получения списка друзей, выполняем запрос получения списка друзей установивших приложение            VK.api("friends.getAppUsers", {}, function(dataAppUsers) {                    // !!! ОБРАТИТЕ ВНИМАНИЕ, что вместо "data", привычной многим "просто-копипастерам-кода", используются dataAllFriends и dataAppUsers. Благодаря этому вторая переменная не перезапишет значения первой.                                       // узнаем количество друзей                    var frCount = dataAllFriends.response.length;                    // количество установивших приложение                    var appCount = dataAppUsers.response.length;                                       // создаём массив друзей, которые не установили приложение                    var noApp = dataAllFriends.response; // cначала записываем всех друзей в массив, дальше будем удалять из него установивших                                       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<4) {                            // просто превращаем массив пользователей в строку                            var noAppUids = noApp.join(',');                        } else {                            // выбираем случайных трёх, причем исключаем вероятность выбора одного и того же пользователя                            // сделаем это так: выберем одного и удалим его из массива и т.д.                            var uidCount = 3; // количество профилей                            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(',');                        }                                                                                             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 onclick="VK.callMethod(\'showRequestBox\', '+data.response[i].uid+', \'Рекомендую посмотреть ({title}) в отличном качестве \');" ><img src="' + data.response[i].photo_rec + '" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '"/></a> ';                            }                            document.getElementById('friends_list').innerHTML = profilesStr;                                                       // http://flapps.ru                        });                    }            });        });    });});</script></head><body><div id="uids_count"></div><div id="friends_list"></div><a href="http://flapps.ru">http://flapps.ru</a></body></html>
Добавив в 73 строку вот такой код =)

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

<a onclick="VK.callMethod(\'showRequestBox\', '+data.response[i].uid+', \'Рекомендую посмотреть ({title}) в отличном качестве \');" ><img src="' + data.response[i].photo_rec + '" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '"/></a>
Abdul-Ibn-Abusheih
ЗАБАНЕН!
Сообщения: 430
Зарегистрирован: 02 мар 2012, 19:15

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение Abdul-Ibn-Abusheih »

Может кто то для флэша напишет?
hahaha
Сообщения: 86
Зарегистрирован: 04 янв 2012, 14:52

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение hahaha »

чё-то не работает...
Аватара пользователя
BIOS
КИДАЛА!
Сообщения: 68
Зарегистрирован: 04 ноя 2009, 10:43

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение BIOS »

Включи в настройках приложения отправку уведомлений
Аватара пользователя
Mihailow_du
Сообщения: 63
Зарегистрирован: 24 янв 2012, 18:26

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение Mihailow_du »

Т.е. измения только в 73 строке??
А то у меня тот оригинальный код работает - добавляю эту вашу 73ую строчку и все тот мой код "умирает" и уже больше ничего не выводит на экран...
Аватара пользователя
anton37
Сообщения: 56
Зарегистрирован: 14 ноя 2010, 18:22

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение anton37 »

Вот рабочий код по крайне мере у меня работает :http://vk.com/caual_app

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

<script type="text/javascript">                    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;            if (appCount<frCount) {                for (i=0;i<appCount;i++) {                    for(j=0;j<frCount;j++){                        if (dataAppUsers.response[i]==noApp[j]) {                        noApp.splice(j,1);                        break;                        }                    }                }            }            var noAppCount = noApp.length;            document.getElementById('uids_count').innerHTML = '<center>Кол-во друзей, не установивших приложение: <font color="red"><b>'+noAppCount+'</b></font>';            if (noAppCount>0) {                if (noAppCount<8) {  // здесь ставь то количество выводимых , сколко надо +1                var noAppUids = noApp.join(',');                } else {                        var uidCount = 7; // здесь просто столько сколько надо                        var uidArr = [];                        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(',');                        }                VK.api("getProfiles", {uids:noAppUids,fields:"photo_rec"}, function(data) {                var profilesCount = data.response.length;                var profilesStr = '';                for (var i=0; i<profilesCount; i++) {                profilesStr += '<a onclick="newuser(' +  data.response[i].uid + ')" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '"><img src="' + data.response[i].photo_rec + '" /></a> ';                }                document.getElementById('friends_list').innerHTML = '<div id="dld"><center>'+profilesStr+'</center></div>';                });            }            });        });      function newuser(user_id){        uid_to = user_id;        var mess = 'Рекомендую прочитать статью: "Дополнительные оснащения спиннинга"';        var requestKey = 'my_key';                 VK.callMethod("showRequestBox", uid_to, mess, requestKey);}</script>

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

<center><h2>Порекомендуй эту статью своим друзьям:</h2></center></br><div id="friends_list"></div><div id="uids_count"></div>
Аватара пользователя
Mihailow_du
Сообщения: 63
Зарегистрирован: 24 янв 2012, 18:26

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение Mihailow_du »

anton37

Спасибо! Твой код меня реально выручил!!!
Такой вопрос: вот все тут выводят выборочно 3-и или 7-м друзей...
А пробовал ли кто-нибудь вывести всех или только первую 1.000 друзей (ограничение контакта - максимум 1.000 друзей) в листаемый "слайдер"?

т.е. у меня на текущий момент 75 друзей, а не используют приложение 35 друзей, как мне вывести всех 35 с прокруткой что я бы сам мог
выбрать кого позвать, а не выбирал из каких то 7-ми? начальный этап решения тут: http://vk.com/app2170107 кто может подсказать??
GoldMaximum
Сообщения: 130
Зарегистрирован: 29 апр 2011, 17:18

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение GoldMaximum »

У меня вообще не чего не выводит, из за чего это может быть?

Код следующий

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

<script src="http://code.jquery.com/jquery-1.5.1.min.js" type="text/javascript"></script><script src="http://vk.com/js/api/xd_connection.js?2" type="text/javascript"></script><script>  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;            if (appCount<frCount) {                for (i=0;i<appCount;i++) {                    for(j=0;j<frCount;j++){                        if (dataAppUsers.response[i]==noApp[j]) {                        noApp.splice(j,1);                        break;                        }                    }                }            }            var noAppCount = noApp.length;            document.getElementById('uids_count').innerHTML = '<center>Кол-во друзей, не установивших приложение: <font color="red"><b>'+noAppCount+'</b></font>';            if (noAppCount>0) {                if (noAppCount<8) {  // здесь ставь то количество выводимых , сколко надо +1                var noAppUids = noApp.join(',');                } else {                        var uidCount = 7; // здесь просто столько сколько надо                        var uidArr = [];                        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(',');                        }                VK.api("getProfiles", {uids:noAppUids,fields:"photo_rec"}, function(data) {                var profilesCount = data.response.length;                var profilesStr = '';                for (var i=0; i<profilesCount; i++) {                profilesStr += '<a onclick="newuser(' +  data.response[i].uid + ')" title="' + data.response[i].first_name + ' ' + data.response[i].last_name + '"><img src="' + data.response[i].photo_rec + '" /></a> ';                }                document.getElementById('friends_list').innerHTML = '<div id="dld"><center>'+profilesStr+'</center></div>';                });            }            });        });      function newuser(user_id){        uid_to = user_id;        var mess = 'Рекомендую прочитать статью: "Дополнительные оснащения спиннинга"';        var requestKey = 'my_key';                VK.callMethod("showRequestBox", uid_to, mess, requestKey);}</script><div id="uids_count"></div><div id="friends_list"></div> 
GoldMaximum
Сообщения: 130
Зарегистрирован: 29 апр 2011, 17:18

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение GoldMaximum »

Всё разобрался, если нужен код, пишите выложу.
gogart
Сообщения: 1
Зарегистрирован: 01 авг 2012, 23:59

Re: Отправка уведомлений (showRequestBox). При клике на фото

Сообщение gogart »

У меня тоже вообще не чего не выводит, в чем там дело?
Выложи код, плиз.
Ответить