Как получить access token пользователя vk api

Не могу понять как получить 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

Рейтинг
( Пока оценок нет )
Загрузка ...