Возможен ли вызов secure.sendNotification без access_token?

Здравствуйте, возможен ли вызов этого метода с собственного сервера без предварительного получения access_token?

Официальная документация к secure.sendNotification утверждает, что да, начиная с апреля прошлого года, это возможно - при помощи сервисного ключа доступа.

Я нашел этот ключ в настройках своего iframe-приложения, но как встроить его в URL вызова метода (я использую Java и Jetty HttpClient) - непонятно.

Какой именно параметр нужно добавлять в мой URL?

String VK_API_URL = "https://api.vk.com/method/secure.sendNotification?user_id=%s&message=%s&v=5.71";


Кроме того, в документации непонятно, привязан сервисный ключ доступа к IP-адресу сервера моей игры или все-таки нет:

Для запросов к методам secure сервисный ключ привязан к IP-адресу, с которого был сгенерирован.


Получить сервисный ключ доступа можно в настройках Вашего приложения. Ключ не привязан к IP-адресу при использовании с открытыми методами, срок его действия не ограничен


Если он все-таки привязан, то как получить его именно для моего сервера?

Обновление:

Я попытался добавить параметр в форме access_token=сервисный ключ доступа, но увы - на вызов GET следующего URL:

https://api.vk.com/method/secure.sendNotification?access_token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&user_id=62184875&message=%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D0%B5+%D0%BE%D1%82+%D0%B8%D0%B3%D1%80%D0%BE%D0%BA%D0%B0&v=5.71


Приходит ответ (хотя получатель и установил у себя мою еще не прошедшую проверку в каталог игру):

{"error":{"error_code":7,"error_msg":"Permission to perform this action is denied","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"secure.sendNotification"},{"key":"user_id","value":"62184875"},{"key":"message","value":"Сообщение от игрока"},{"key":"v","value":"5.71"}]}}


Добавление еще &client_secret=... ничего не изменило
  • Вопрос задан
  • 684 просмотра
Пригласить эксперта
Ответы на вопрос 1
Dyaminigo
@Dyaminigo
.NET Developer
Возможен. Сервисный ключ необходимо передавать в параметре "access_token".
Как написано в совершённом изменении, Вы можете спокойно использовать сервисный ключ, который указан в настройках приложения и он не будет привязан к IP.
UPD. Много противоречивой информации в документации, где-то нужно по-прежнему для сервера запрашивать сервисный ключ отдельно, а где-то пишут, что и из настроек подойдёт.
В ответе я склоняюсь к информации из уже совершённого изменения.
С апреля 2017 года для использования открытых методов и методов secure нужно будет использовать сервисный ключ доступа из настроек приложения. Вам не придется делать отдельный запрос к oauth.vk.com, чтобы получить его.

Также обратите внимание на это.
Помимо стандартных параметров, указанных в описании методов, к запросу необходимо добавлять параметр client_secret, содержащий значение из поля «Защищенный ключ» в настройках приложения.

Secure. На странице секции указывается запрашивать сервисный ключ старым способом, но ничто не мешает Вам попробовать и вроде актуальный вариант, и старый.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы