Задать вопрос
@kakisaebalsujit

Почему возвращается ошибка от VK API?

Доброго времени суток.
Сегодня заинтересовался данным методом -> https://vk.com/dev/wall.post
При отправке запроса на создание поста, приходит 27 ошибка. Сама ошибка "Ключ доступа сообщества недействителен."

Вот так я делаю запрос на создание поста.
if ($message == 'Пост') {
        $i_parse = $vk->request('wall.post', ['access_token' => 'мой токен', 'owner_id' => '-184407589', 'message' => 'New post on group wall via API.console.']);
        $i = json_encode($i_parse);
        $vk->sendMessage($peer_id,"OK\n $i\n");
    }


Что приходит в ответ.
{"error":{"error_code":27,"error_msg":"Group authorization failed: method is unavailable with group auth.","request_params":[{"key":"method","value":"wall.post"},{"key":"oauth","value":"1"},{"key":"owner_id","value":"-184407589"},{"key":"message","value":"New post on group wall via API.console."},{"key":"v","value":"5.81"}]}}


Но самое странное, что ключ сообщества правильный, и ключ для этого метода тоже создан правильно.
В чем может быть ошибка? В коде или в каком то из ключей?
Заранее спасибо)
  • Вопрос задан
  • 16398 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 3
sergiks
@sergiks Куратор тега PHP
♬♬
method is unavailable with group auth

«Метод недоступен с токеном сообщества.»

Посмотрите документацию метода wall.post(), самый первый абзац. Единственный вариант запустить wall.post():
Этот метод можно вызвать с ключом доступа пользователя, полученным в Standalone-приложении через Implicit Flow, или с использованием окна подтверждения. Требуются права доступа: wall.


Зарегистрируйте Standalone приложение, получите через него токен админа группы и размещайте записи с параметром from_group=1, чтобы от имени группы.
Ответ написан
Для отправки сообщений на стене пользователя нужен Ключ доступа пользователя, а не Сообщества. Так как Implicit Flow для получения ключа доступа сообщества указано в scope:

Сейчас доступны: manage,messages,photos,docs.


А в wall.post:

Требуются права доступа: wall.


Ключ доступа пользователя (access_token) получаем примерно так:

https://oauth.vk.com/authorize?client_id=<app_id>&redirect_uri=https://oauth.vk.com/blank.html&display=page&scope=wall&response_type=token&v=5.130


Делаем тестовый пост:

https://api.vk.com/method/wall.post?owner_id=-<group_id>&form_group=1&scope=wall&message=123&v=5.130&access_token=<access_token (ключ доступа пользователя)>
Ответ написан
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
n522VgWc.png
Ты тут что-то видишь про ключ сообщества? Я - нет
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы