Наверное, уже разобрались, что серверный токен с правом
wall
можно получить только с редиректом на
https://oauth.vk.com/blank.html
. Так ВК борется со спамом, когда у пользователя один раз получают разрешение, и потом спамят от имени его аккаунта.
Если не разобрались.Права доступа:
Данное право доступа по умолчанию недоступно для сайтов (игнорируется при попытке авторизации для приложений с типом «Веб-сайт» или по схеме Authorization Code Flow).
Решить проблему можно несколькими не очень приятными способами. Все они сводятся к тому, чтобы заполучить полную адресную строку после редиректа на
blank.html
:
- ⚠️
не делайте так!
Попросить у пользователя скопировать адресную строку окна и вставить в форму на вашем сайте
- Написать расширение для браузера и просить пользователей установить его – не все согласятся так заморачиваться
- Оформить веб-клиент как скачиваемое приложение. Electron, nwjs, вот это всё.. Внутри него будет веб-компонент, в котором откроется сайт ВК и пользователь авторизуется с тем же редиректом. Разница в том, что такой «браузер» полностью контролируется вашим кодом – заберёте URI, перешлете в фоне на свой сервер. Но скачивать такое тяжелое приложение будут еще меньше, чем плагин в браузер. И у вас должна быть отличная репутация, чтобы в вашем приложении люди вводили свой логин/пароль от ВК.
Может, опишите подробнее задуманный функционал? Его, вероятно, можно реализовать и другими способами. Например, постинг в сообщества можно делать от вашего (запасного) аккаунта. Пусть админы, желающие пользоваться вашим приложением, добавляют тот аккаунт в Редакторы своего сообщества – так он сможет создавать посты на стене. А уж один ваш аккаунт вы сумеете авторизовать и забрать его токен любым из выше описанных способов.