Отправка уведомлений через приложение (showRequestBox)

Готовые уроки IFrame + ВКонтакте API
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Отправка уведомлений через приложение (showRequestBox)

Сообщение Александр »

Отправка уведомлений через приложение (showRequestBox)

С 16 марта ВКонтакте была запущена новая система уведомлений через приложения. Теперь пользователи могут отправлять друг другу сообщения внутри приложения.

- Новые запросы увеличивают счетчик рядом с разделом «Приложения» у получателя
- Получателю выводится всплывающее уведомление о новом запросе
- Блок новых запросов выводится в верхней части раздела «Приложения»

С 1 апреля 2012 года использование методов saveWallPost и wall.post для публикаций сообщений на чужих стенах будет закрыто. Записи на своей странице можно будет совершать при помощи wall.post только для категории Приложения (не Игры).

Более подробно можно почитать здесь http://vk.com/topic-1_26154225

Для использования этой системы создан метод Javascript API - showRequestBox.
Можно прочитать о нем в официальной документации http://vk.com/developers.php?oid=-1&p=Javascript_API

Понять как использовать методы метод Javascript API можно прочитав урок Вызов методов Javascript API, обработка событий.

В этом уроке будет приведен пример работы с методом showRequestBox.


Метод showRequestBox
Параметры: int uid, string message, string requestKey
Открывает окно отправки запроса пользователю uid (должен быть другом текущего пользователя) с текстом message, и произвольным дополнительным параметром requestKey. С помощью данного метода пользователь может оповестить о событии в приложении своих друзей, даже если у них оно не установлено. При просмотре запроса получателем будут переданы параметры request_key и request_id. После действия пользователя может быть вызвано одно из трёх событий: onRequestSuccess, onRequestCancel, onRequestFail.

request_key можно использовать для того чтобы показывать пользователю определенный контент, в зависимости от значения этого параметра.

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

<!doctype 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() {         var uid = 1306422; // id пользователя, которому будет отправлять запрос        var mess = 'flapps.ru'; // текст сообщения        var requestKey = 'my_key'; // дополнительный параметр                // открывает окно отправки запроса пользователю        VK.callMethod("showRequestBox", uid, mess, requestKey);              // события после действий пользователя        VK.addCallback("onRequestSuccess", onRequestSuccess);        function onRequestSuccess() {            alert('onRequestSuccess');        }                VK.addCallback("onRequestCancel", onRequestCancel);        function onRequestCancel() {            alert('onRequestCancel');        }                    VK.addCallback("onRequestFail", onRequestFail);        function onRequestFail() {            alert('onRequestFail');        }        });});</script></head><body><a href="http://flapps.ru">http://flapps.ru</a></body></html>

Заходим в редактирование приложения

Настройки - Права доступа
Запрашивать доступ к: доступ к ответам

Подробнее о правах приложения http://vk.com/developers.php?oid=-1&p=% ... 0%B8%D0%B9
Аватара пользователя
anton37
Сообщения: 56
Зарегистрирован: 14 ноя 2010, 18:22

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение anton37 »

Чуть видоизменил скрипт, что уведомление отправлялось случайному другу:

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

<script type="text/javascript" charset="cp1251" >window.onload = (function() {    VK.init(function() {     VK.api("getFriends", {fields:"uid"}, function(data) {         friend_n = Math.floor(Math.random()*$(data.response).size());        friend_id = data.response[friend_n].uid;         var uid = data.response[friend_n].uid;        var mess = 'тарарарарарараарар'; // Ваш текст сообщения        var requestKey = 'my_key'; // дополнительный параметр               // открывает окно отправки запроса пользователю        VK.callMethod("showRequestBox", uid, mess, requestKey);              // события после действий пользователя        VK.addCallback("onRequestSuccess", onRequestSuccess);        function onRequestSuccess() {            alert('onRequestSuccess');        }               VK.addCallback("onRequestCancel", onRequestCancel);        function onRequestCancel() {            alert('onRequestCancel');        }                   VK.addCallback("onRequestFail", onRequestFail);        function onRequestFail() {            alert('onRequestFail');        }       });    });});</script>
sakogr
Сообщения: 19
Зарегистрирован: 09 дек 2011, 19:32

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение sakogr »

anton37 писал(а):Чуть видоизменил скрипт, что уведомление отправлялось случайному другу:

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

<script type="text/javascript" charset="cp1251" >window.onload = (function() {    VK.init(function() {     VK.api("getFriends", {fields:"uid"}, function(data) {         friend_n = Math.floor(Math.random()*$(data.response).size());        friend_id = data.response[friend_n].uid;         var uid = data.response[friend_n].uid;        var mess = 'тарарарарарараарар'; // Ваш текст сообщения        var requestKey = 'my_key'; // дополнительный параметр               // открывает окно отправки запроса пользователю        VK.callMethod("showRequestBox", uid, mess, requestKey);              // события после действий пользователя        VK.addCallback("onRequestSuccess", onRequestSuccess);        function onRequestSuccess() {            alert('onRequestSuccess');        }               VK.addCallback("onRequestCancel", onRequestCancel);        function onRequestCancel() {            alert('onRequestCancel');        }                   VK.addCallback("onRequestFail", onRequestFail);        function onRequestFail() {            alert('onRequestFail');        }       });    });});</script>
вроде не работает :(
Derial
Сообщения: 65
Зарегистрирован: 07 мар 2012, 17:22

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение Derial »

У меня выдает "onRequestFail" а не окно с отправкой :?
Аватара пользователя
Cypporat
Сообщения: 48
Зарегистрирован: 30 май 2011, 11:03

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение Cypporat »

Да чет действительно не работает ( во как получить id друга рандомом вставлять в скрипт ?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение Александр »

sakogr

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

$(data.response).size()
Ни о чем не говорит? anton37 написал код, вероятнее всего, с использованием jQuery.

ID пользователя должен быть ID друга, а не того кто отправляет или того кто не находится в списке друзей.
sakogr
Сообщения: 19
Зарегистрирован: 09 дек 2011, 19:32

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение sakogr »

Александр писал(а):sakogr

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

$(data.response).size()
Ни о чем не говорит? anton37 написал код, вероятнее всего, с использованием jQuery.

ID пользователя должен быть ID друга, а не того кто отправляет или того кто не находится в списке друзей.
Ваш код у меня заработал :) , а вот код Антона нет :(
apiboss
Сообщения: 25
Зарегистрирован: 03 май 2011, 17:15

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение apiboss »

$(data.response).size() куда его вставить ?
Дайте пожалуйста рабочий скрипт с отправкой случайным друзьям ....
apiboss
Сообщения: 25
Зарегистрирован: 03 май 2011, 17:15

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение apiboss »

Все работает только нужно разрешить отправку уведомлений в приложении ....

Кто нибудь сделайте готовый скрипт чтобы этот скрипт выполнялся только один раз (в день) для каждого посетителя на главной странице. Заплачу !!! Очень надо а я ни бум бум )
Аватара пользователя
Cypporat
Сообщения: 48
Зарегистрирован: 30 май 2011, 11:03

Re: Отправка уведомлений через приложение (showRequestBox)

Сообщение Cypporat »

Класс заработало кто может пояснить из за чего сначала не работало ?
Ответить