Сразу хочу сказать что перечитал все ветки касающеся рассылки уведомлений. Теми способами что нашел -- не заработало.
Для начала по докам АПИ Вконтакта.
Как я понял уведомления должны рассылаются моим сервером с помощъю функции secure.sendNotification. Читаю https://vk.com/dev/secure.sendNotification
Иду по ссылке про вызов серверных методов -- https://vk.com/dev/secure_how_toДанный метод является серверным. Он может быть вызван только с Вашего сервера, от имени приложения, используя схему вызова серверных методов.
Этот метод не требует прав доступа.
Вроде всё понятно. Про вызов безопасных методов описано здесь -- https://vk.com/dev/api_requests Делается это например такДля получения ключа необходимо выполнить запрос к https://oauth.vk.com/access_token, передав данные аутентификации приложения client_id и client_secret и параметр grant_type = "client_credentials". В результате выполнения запроса будет возвращён access_token, при помощи которого можно осуществлять безопасные API-вызовы. Со списком безопасных вызовов можно ознакомиться на странице описания методов API.
Список безопасных методов лежит здесь 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 );
WTF ?! А как тогда понимать все доки перечисленные выше ??"error_code":5,"error_msg":"User authorization failed: you should pass client_secret param to use secure methods"
Ладно, допускаю что в доках ошибка и нужно вызывать 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 );
Иду в настройки приложения (iFrame). Добавляю в права доступа "присылать уведомления" -- вероятно это оно? Сейчас права выглядят так:[error_code] => 7 [error_msg] => Permission to perform this action is denied
Вызываю снова. Получаю ту-же ошибкуПрава доступа: Запрашивать доступ к: присылать уведомления, доступ к друзьям, доступ к фотографиям, доступ к стене, доступ к группам
Что я делаю не так ?![error_code] => 7 [error_msg] => Permission to perform this action is denied
Спасибо