Помогите разобраться с рассылкой уведомлений

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
Аватара пользователя
Komsomolez
Сообщения: 12
Зарегистрирован: 12 ноя 2013, 14:33

Помогите разобраться с рассылкой уведомлений

Сообщение Komsomolez »

Всем привет !

Сразу хочу сказать что перечитал все ветки касающеся рассылки уведомлений. Теми способами что нашел -- не заработало.

Для начала по докам АПИ Вконтакта.

Как я понял уведомления должны рассылаются моим сервером с помощъю функции secure.sendNotification. Читаю https://vk.com/dev/secure.sendNotification
Данный метод является серверным. Он может быть вызван только с Вашего сервера, от имени приложения, используя схему вызова серверных методов.
Этот метод не требует прав доступа.
Иду по ссылке про вызов серверных методов -- https://vk.com/dev/secure_how_to
Для получения ключа необходимо выполнить запрос к https://oauth.vk.com/access_token, передав данные аутентификации приложения client_id и client_secret и параметр grant_type = "client_credentials". В результате выполнения запроса будет возвращён access_token, при помощи которого можно осуществлять безопасные API-вызовы. Со списком безопасных вызовов можно ознакомиться на странице описания методов API.
Вроде всё понятно. Про вызов безопасных методов описано здесь -- https://vk.com/dev/api_requests Делается это например так
Список безопасных методов лежит здесь https://vk.com/dev/secure -- и secure.sendNotification как раз в нём присутствует
Отлично, вся информация есть -- приступаю

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

$cred = file_get_contents ( "https://oauth.vk.com/access_token?client_id=$vk_app_id&client_secret=$vk_app_key&v=5.5&grant_type=client_credentials" );                                       $cred2 = json_decode($cred, true);$access_token = $cred2["access_token"];echo    "$access_token = access_token<br>";         $res = file_get_contents ( "https://api.vk.com/method/secure.sendNotification?user_id=$vk_id&message=$vk_msg&v=5.5&access_token=$access_token" );print_r ( $res );
Вызываю. Токен получаю корректно, а дальше сообщение об ошибке
"error_code":5,"error_msg":"User authorization failed: you should pass client_secret param to use secure methods"
WTF ?! А как тогда понимать все доки перечисленные выше ??

Ладно, допускаю что в доках ошибка и нужно вызывать secure.sendNotification иначе. Делаю как во всех обсуждениях

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

$VK = new vkapi ( $vk_app_id, $vk_app_key );$resp = $VK->api ( "secure.sendNotification", array("user_id"=>$vk_id,"message"=>$vk_msg) );print_r ( $resp );
Вызываю. Получаю ошибку
[error_code] => 7 [error_msg] => Permission to perform this action is denied
Иду в настройки приложения (iFrame). Добавляю в права доступа "присылать уведомления" -- вероятно это оно? Сейчас права выглядят так:
Права доступа: Запрашивать доступ к: присылать уведомления, доступ к друзьям, доступ к фотографиям, доступ к стене, доступ к группам
Вызываю снова. Получаю ту-же ошибку
[error_code] => 7 [error_msg] => Permission to perform this action is denied
Что я делаю не так ?!

Спасибо
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Помогите разобраться с рассылкой уведомлений

Сообщение sasha^ »

http://flapps.ru/forum/post47833.html глянь этот урок.. специально написал..
Аватара пользователя
Komsomolez
Сообщения: 12
Зарегистрирован: 12 ноя 2013, 14:33

Re: Помогите разобраться с рассылкой уведомлений

Сообщение Komsomolez »

значит правильно всё-таки через $VK->api ( "secure.sendNotification", array(...) );

ответил http://flapps.ru/forum/topic7291.html#p47836
Аватара пользователя
Komsomolez
Сообщения: 12
Зарегистрирован: 12 ноя 2013, 14:33

Re: Помогите разобраться с рассылкой уведомлений

Сообщение Komsomolez »

Разобрался.

Дело оказывается в том что раньше у программы не было флага "присылать уведомления" в настройках !!
Соотв все кто уже запускал программу -- сообщения не получают потому что флаг не установлен в настройках.
А заново программа флаг установить не предлагает.

Как заставить вконтакт показать пользователю какие привелегии требует программа чтобы он дал добро на получение уведомлений ?

А то полная лажа -- у программы уже под 100 тыщ пользователей -- а уведомлений не получит никто (

P.S. Способ с access_token-ом тоже отлично работает, нужно только добавить к параметра secret_key

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

            $cred   = file_get_contents ( "https://oauth.vk.com/access_token?client_id=$vk_app_id&client_secret=$vk_app_key&v=5.5&grant_type=client_credentials" );$cred2  = json_decode($cred, true);$access_token   = $cred2["access_token"];$query  = "https://api.vk.com/method/secure.sendNotification?user_id=$vk_id&message=$vk_msg&v=5.5&access_token=$access_token&client_secret=$vk_app_key";$reply  = file_get_contents ( $query );print_r ( $reply ); 
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Помогите разобраться с рассылкой уведомлений

Сообщение sasha^ »

http://vk.com/dev/clientapi

точнее VK.callMethod("showSettingsBox", 1);

ps. нагло просить при входе=)
Аватара пользователя
Komsomolez
Сообщения: 12
Зарегистрирован: 12 ноя 2013, 14:33

Re: Помогите разобраться с рассылкой уведомлений

Сообщение Komsomolez »

Спасибо так и сделаю
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Помогите разобраться с рассылкой уведомлений

Сообщение Serge »

Так вроде если в настройках приложения (в управлении) поставить запрос доступа к рассылке уведомлений - то при входе пользователя попросит заново согласится с тем, что приложение от него хочет
sasha^
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52

Re: Помогите разобраться с рассылкой уведомлений

Сообщение sasha^ »

да.. но автора это не устраивало:
Дело оказывается в том что раньше у программы не было флага "присылать уведомления" в настройках !!
Соотв все кто уже запускал программу -- сообщения не получают потому что флаг не установлен в настройках.
А заново программа флаг установить не предлагает.
Аватара пользователя
Komsomolez
Сообщения: 12
Зарегистрирован: 12 ноя 2013, 14:33

Re: Помогите разобраться с рассылкой уведомлений

Сообщение Komsomolez »

то при входе пользователя попросит заново согласится с тем, что приложение от него хочет
Если-бы так -- проблемы-бы не было. Никто пользователя ни о чем не просит.
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

Re: Помогите разобраться с рассылкой уведомлений

Сообщение Serge »

Проверял только что...

Если добавить в настройках приложения "требовать от пользователя разрешения отправлять уведомления" - то да, ничего не произойдет. Но если еще что-то поставить (я добавил "доступ к фото") - то при следующем входе вылезет окно ВК (как при первом запуске) и скажет, что мол приложение теперь доступа больше хочет. При согласии пользователя - галочку "отправлять уведомления" тоже поставит.
Ответить