@jenya7771

Почему разные разрешения при изменении redirect_uri при получении токена VK?

Здравствуйте, почему разные разрешения при получении токена вконтакте?
Если указать redirect_uri https://oauth.vk.com/blank.html
То разрешения будут все которые нужны
5bbf1e17129d8967307061.png
https://oauth.vk.com/authorize?client_id=1234567&scope=groups,wall,offline,photos&redirect_uri=https://oauth.vk.com/blank.html&display=page&v=5.74&response_type=token


А если redirect_uri указать на свой сайт, предварительно указав в настройках приложения, то исчезает разрешение доступ к стене
5bbf1e4a6cffd425396024.png
https://oauth.vk.com/authorize?client_id=1234567&scope=groups,wall,offline,photos&redirect_uri=http://site.com/get-token/vk&display=page&v=5.74&response_type=token


Как решить такую проблему?
  • Вопрос задан
  • 318 просмотров
Пригласить эксперта
Ответы на вопрос 2
iiiBird
@iiiBird
Пока ты спишь - твой конкурент совершенствуется
скорее всего у тебя приложение типа "веб-сайт". Там оно не работает https://vk.com/dev/permissions
cSRwNn81.png
Ответ написан
sergiks
@sergiks Куратор тега ВКонтакте
♬♬
Наверное, уже разобрались, что серверный токен с правом wall можно получить только с редиректом на https://oauth.vk.com/blank.html. Так ВК борется со спамом, когда у пользователя один раз получают разрешение, и потом спамят от имени его аккаунта.
Если не разобрались.
Права доступа:
Данное право доступа по умолчанию недоступно для сайтов (игнорируется при попытке авторизации для приложений с типом «Веб-сайт» или по схеме Authorization Code Flow).


Решить проблему можно несколькими не очень приятными способами. Все они сводятся к тому, чтобы заполучить полную адресную строку после редиректа на blank.html:
  1. ⚠️не делайте так! Попросить у пользователя скопировать адресную строку окна и вставить в форму на вашем сайте
  2. Написать расширение для браузера и просить пользователей установить его – не все согласятся так заморачиваться
  3. Оформить веб-клиент как скачиваемое приложение. Electron, nwjs, вот это всё.. Внутри него будет веб-компонент, в котором откроется сайт ВК и пользователь авторизуется с тем же редиректом. Разница в том, что такой «браузер» полностью контролируется вашим кодом – заберёте URI, перешлете в фоне на свой сервер. Но скачивать такое тяжелое приложение будут еще меньше, чем плагин в браузер. И у вас должна быть отличная репутация, чтобы в вашем приложении люди вводили свой логин/пароль от ВК.


Может, опишите подробнее задуманный функционал? Его, вероятно, можно реализовать и другими способами. Например, постинг в сообщества можно делать от вашего (запасного) аккаунта. Пусть админы, желающие пользоваться вашим приложением, добавляют тот аккаунт в Редакторы своего сообщества – так он сможет создавать посты на стене. А уж один ваш аккаунт вы сумеете авторизовать и забрать его токен любым из выше описанных способов.
Ответ написан
Ваш ответ на вопрос

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

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