Не могу понять как получить access_token пользователя для сервера!
Создал приложения в ВК и при загрузке получаю данные:
http://мой сайт ру/social_api/index.html?api_url=http://api.vk.com/api.phpapi_settings=9255viewer_type=2secret=b443998c65user_id=18601455is_app_user=1language=0ad_info=ElsdCQBUR1VlAQFeAkwJSXHt5BkQ8HTJXUVBBJRVBNwoIFjI2HA8Eads_app_id=4656995_d1kff23be7203289290lc_name=19950c48access_token=32cc547e6e8f0ed1225e0beda38f63705a300fad9fe8541e7b8d25ea955b1497168c53b83737e703dbc2be2
НО! если запрос делать с сервера то получим ошибку:
User authorization failed: access_token was given to another ip address
И вопрос как получить токен пользователя для работы с ним с сервера?
- Вопрос задан более трёх лет назад
- 7283 просмотра
Источник: qna.habr.com
Автопостинг в VK с помощью API
Мы с ребятами из разных групп арендуем гараж для репетиций. Групп много, их количество, а также количество музыкантов в каждой, постоянно варьируется. Раз в 2 месяца я плачу хозяину гаража определенную сумму, которую мне необходимо собрать с участников. Каждый участник скидывает свою долю, которая определяется по нехитрой формуле НЕОБХОДИМАЯ СУММА / ОБЩЕЕ ЧИСЛО УЧАСТНИКОВ.
VK API получаем токен группы и standalone access token
Для того чтобы собрать нужные сведения и после оповестить ребят, сколько же им скидывать в новом периоде, я прохожу через стандартную процедуру:
- пощу на стену сообщества нашего гаража сообщение с просьбой ответить в комментах сколько от какой группы будет репетировать человек;
- после того как ребята оставят свои комментарии с количеством людей в их комманде, мне необходимо посчитать общее количество и вычислить долю каждого музыканта;
- чтобы потом это инфу запостить и всех оповестить.
Давайте попробуем автоматизировать этот процесс в помощью VK API.
Требования
node v5.0.0
npm v3.3.6
Создание приложения
Сначала нам нужно создать приложение VK. Для этого идём на https://vk.com/dev и клацаем Создать приложение. Вы будете перенаправлены на новую страницу, на которой нужно ввести название вашего приложения и выбрать его тип — Standalone. После чего вам будет предложено подтвердить создание приложения с помощью вашего гаджета. Тут потребуется устройство с установленным на него приложением VK, на который будет отправлен запрос на подтверждение.
После подтверждения зайдите в настройки приложения и поменяйте ему состояние на Приложения включено и видно всем. Последнее, что нас интересует на странице настроек приложения — это его ID (оно же client id), которое пригодится нам в будущем.
Получение access token’а
Для работы с VK API нам потребуется ключ доступа, он же access token. VK поддерживает аж 3 способа получения ключа доступа, хороших для разных целей. Мы получим ключ с помощью Implicit Flow — самого короткого и простого варианта. Ключ к тому же будет вечный (обновлять его не потребуется), что не очень безопасно, но в нашем случае это некритично.
VK API как получить Access Token, метод авторизации implicit flow и standalone приложение вконтакте
Для того, чтобы получить ключ введите в адресной строке вашего браузера следующее:
вместо CLIENT_ID укажите ID вашего приложения (можно посмотреть на странице настроек вашего приложения, как описано выше). Остальные параметры:
- display=page : Указывает тип отображения страницы авторизации. page — форма авторизации в отдельном окне;
- redirect_uri=https://oauth.vk.com/blank.html : Адрес, на который будет переадресован пользователь после прохождения авторизации. В нашем случае необходимо использовать redirect_uri по умолчанию;
- scope=groups,wall,offline : запрашиваемые права для генерируемымого access token’а.
groups — запрашиваем права для доступа к группам пользователя,
wall — запрашиваем права для доступа к стене пользователя/группы, offline — генерируем вечный ключ. - response_type=token : Указываем, что мы, естественно, хотим получить access token с респонсом.
Нужно больше больше прав или более тонкая настройка? Bсё есть в документации VK.
Итак, после введения вышеописанного в адресной строке вашего браузера, вам будет предложены залогиниться в VK (если вы уже этого не сделали), после чего вы будете перенаправлены на страницу подтверждения доступа нашего приложения к вашему акаунту.
После клацания на Разрешить вы будете перенаправлены на такую страницу.
Искомый ключ необходимо будет скопировать из адресной строки, в которой мы видим следующее:
Среди параметров здесь:
- access_token=LOOONG_KEY : наш искомый ключ;
- expires_in=0 : указывает на то, что полученный ключ никогда не истечет, он вечен;
- YOUR_USER_ID : ваш юзер ид, нам он не понадобится.
Итак, ключ получен, можем немного поспамить в наше сообщество.
Постим на стену сообщества с помощью Budan
Склонируйте репозиторий и установите необходимые зависимости:
npm install
В config.json измените параметры на ваши:
- vkAccessToken : вышеполученный access token;
- vkGroupOwnerId : id вашего сообщества. Можно посмотреть, клацнув на любой пост в вашем сообществе. В адресной строке будет что-то типа: https://vk.com/АДРЕС_СТРАНИЦЫ?w=wall-ИСКОМОЕ_ИД_117%2Fall, где наc интересует ИСКОМОЕ_ИД — его вместе со знаком минус его предваряющим и указываем в vkGroupOwnerId;
- total : итоговая сумма, которую нужно собрать;
- currency : код валюты этой итоговой суммы в базе НБРБ. Да, мы будем высчитывать итоговую сумму в беларуских рублях по курсу НБРБ. Курс будем вытягивать по REST API предоставляемому банком;
- periodLengthInMonths : продолжительность периода, как часто нужно расплачиваться за гараж, в нашем случае 2 месяца;
- daysToAnswerDeadline : сколько дней дать ребятам на то, чтобы ответить, т.е. через сколько дней подведём итоги и опубликуем итоговый пост;
- commentRegex : шаблон коммента, по которому будем определять число музыкантов в группе.
В нашем случае это . Например, agnosticfront 5; - announcementMessage : текст сообщения-опросника количества участников;
- resultMessage : текст итогового сообщения.
Для того, чтобы запостить опросник количества людей выполните комманду
node makeAnnouncement.js
После чего на стене вашего сообщества должно появится нужное сообщение.
Теперь давайте сделаем вид, кто ребята откликнулись на ваш опросник и ответили. Добавьте под вашим сообщением несколько комментов по шаблону описанному выше.
А теперь давайте добавим итоговый пост с помощью комманды:
node collectData.js
Смотрим на стену и наслаждаемся.
Теперь осталось только задать расписание выполнения наших скриптов, но об этом несколько позже.
Источник: medium.com
[Примеры] Авторизация (получение access token) с помощью OAuth 2.0 Вконтакте (VK) и работа с API Вконтакте на PHP и JS
Открываем панель управления приложениями Вконтакте, расположенную по адресу https://vk.com/apps?act=manage. В панели управления нажимаем на «Создать приложение».
В открывшейся форме вводим название приложения, выбираем платформу «Веб-сайт», указываем адрес сайта (ссылка должна быть со слешем в конце) и базовый домен.
После нажатия на «Подключить сайт» вам на телефон придёт СМС с кодом подтверждения, который необходимо будет ввести в появившемся окне.
После ввода кода из СМС будет создано новое приложение и откроется страница этого приложения. На странице приложения откройте вкладку «Настройки», там вы увидите данные для доступа к приложению: ID приложения и Защищённый ключ.
Формирование ссылки для авторизации пользователя и получение токена (access token)
Формируем ссылку и выводим её на экран:
Источник: codd-wd.ru