@Kcid13

Почему возникает ошибка при вызове с валидным токеном методов API board.createComment, wall.post и других из серверного приложения?

Работаю над серверным приложением на node.js для публикации материалов. Зарегистрировал и настроил Standalone приложение.

Использую Authorization Flow для получения токена доступа, указываю права "wall, groups, offline", токен получаю успешно, проверял его с другими методами (в частности при вызове хранимой процедуры) — с ним все в порядке.

При вызове некоторых методов для публикации материалов (board.createComment, wall.post) API ВК возвращает сообщение с ошибкой 15 (нет доступа).

Пробовал обойти вызов метода напрямую — написал для приложения хранимую процедуру, которая вызывает метод board.createComment. При вызове метода из формы редактирования процедуры все проходит успешно, когда же пытаюсь вызвать процедуру через http-запрос — снова получаю ошибку.

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

Токен в порядке — вызов других методов а также метода вызова хранимой процедуры (непосредственно вызов, без публикации) происходит успешно.

Тех. поддержка ВК ответила одним предложением из документации, что де токен надо получать через Implicit Flow. Пробовал получить токен и через Implicit Flow — симптомы те же. К тому же, насколько я понимаю, права у них если не одни и те же, то у Authorization Flow должны быть пошире.

Помогите, люди добрые, замучался уже вусмерть!
  • Вопрос задан
  • 488 просмотров
Решения вопроса 1
@Kcid13 Автор вопроса
Ошибка в моем случае была в параметре redirect_uri, который нужно указать в запросе на получение токена, не заметил одной особенности которая связана с этим параметром. Если использовать redirect_uri отличный от такового по умолчанию (https://oauth.vk.com/blank.html) приложение теряет доступ к использованию методов, помеченных как доступных для Standalone приложения.

Выдержка из описания получения токена по Implicit flow:
Если Вы разрабатываете веб-приложение и хотите работать с API из Javascript, в redirect_uri необходимо указать адрес страницы на Вашем сайте. В целях безопасности, этот адрес также должен быть указан в настройках Вашего приложения (поля «Адрес сайта», «Базовый домен» и «Доверенный Redirect URI»). Обратите внимание, Вы не сможете работать с методами, которые помечены как доступные только для Standalone-приложений.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kirill_782
@kirill_782
Днем я Маринетт
Попробуйте токен получить прямой авторищацией с сервера (если нет 2fa на вк аккауете). А вообще вк СПП правы. Implicit имеет больше прав чем Autirization.
P.S. если серверу нужен один аккаунт, то получите ключ в браузере (без rederict url), а потом передайте его серверу.
Ответ написан
Ваш ответ на вопрос

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

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