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

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

Добавлено: 24 мар 2012, 16:55
Александр
Отправка уведомлений через приложение (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

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

Добавлено: 24 мар 2012, 21:16
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>

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

Добавлено: 24 мар 2012, 21:55
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>
вроде не работает :(

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

Добавлено: 25 мар 2012, 08:43
Derial
У меня выдает "onRequestFail" а не окно с отправкой :?

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

Добавлено: 25 мар 2012, 11:50
Cypporat
Да чет действительно не работает ( во как получить id друга рандомом вставлять в скрипт ?

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

Добавлено: 25 мар 2012, 14:04
Александр
sakogr

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

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

ID пользователя должен быть ID друга, а не того кто отправляет или того кто не находится в списке друзей.

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

Добавлено: 26 мар 2012, 11:32
sakogr
Александр писал(а):sakogr

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

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

ID пользователя должен быть ID друга, а не того кто отправляет или того кто не находится в списке друзей.
Ваш код у меня заработал :) , а вот код Антона нет :(

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

Добавлено: 26 мар 2012, 20:42
apiboss
$(data.response).size() куда его вставить ?
Дайте пожалуйста рабочий скрипт с отправкой случайным друзьям ....

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

Добавлено: 27 мар 2012, 10:45
apiboss
Все работает только нужно разрешить отправку уведомлений в приложении ....

Кто нибудь сделайте готовый скрипт чтобы этот скрипт выполнялся только один раз (в день) для каждого посетителя на главной странице. Заплачу !!! Очень надо а я ни бум бум )

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

Добавлено: 27 мар 2012, 19:58
Cypporat
Класс заработало кто может пояснить из за чего сначала не работало ?