Авторизация в VK для людей / Хабр

Что делать с полученными данными при авторизации vk?

Записываем данные на носитель…

Что случилось?

Здравствуй, дорогой читатель. Если тебе хотя бы однажды доводилось работать с API Вконтакте и при этом писать все на python, вероятно, авторизация приложения заставила тебя сделать несколько приседаний, после которых ног либо не чувствуешь и падаешь в обморок, либо вкачиваешь квадрицепс и все же пробиваешь API, как Ван Дамм.

По какой-то причине этот, казалось бы, самый непримечательный этап поначалу отнимает огромное количество сил и времени. Моя задача: помочь читателям Хабра избежать травм ног.

Далее я предлагаю рассмотреть небольшую библиотеку, позволяющую в одну строчку авторизовать свое приложение для конкретного пользователя и получить access_token. В конце статьи представлена ссылка на github-репозиторий этой библиотеки с quickstart’ом в README-файле.

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

Вам удалось войти на свою страницу Вконтакте? Представленная информация оказалась полезна? Пожалуйста, поделитесь своим мнением в комментариях!

Войти на свою страницу вконтакте

Для перехода к форме входа, нажмите на кнопку ниже.

Вход в вк с компьютера и телефона через браузер

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

Делаем ссылку : “войти через вконтакте”

Переходим ко второму шагу – авторизации через api vk – нам нужна ссылка вида : ”
Войти через ВКонтакте

Задача

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

Итак, используем python3.5, библиотеку для html запросов requests и getpass для скрытого ввода пароля.

Наша задача: несколько раз обратиться по верному адресу, каждый раз парсить <form>, отправлять ответ и наконец получить желанный access_token.

Примеры работы с api vk (вконтакте) на php

Список методов API Вконтакте | Ограниченияи рекомендации

Процесс авторизации на странице вконтакте, через мобильное приложение

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

Реализация

Начнем с создания класса. При инициализации будем требовать список “разрешений”, к которым приложение хочет получить доступ, id этого приложения и версию API VK. Плюсом добавим несколько необязательных параметров, значение каждого из которых прояснится далее.

Как было сказано в уже упомянутой статье, нам необходимо искусно ворочать cookie и redirect’ы. Все это за нас делает библиотека requests с объектом класса Session. Заведем и себе такой в поле self.session. Для парсинга html документа используется стандартный класс HTMLParser из модуля html.parser.

Для парсера тоже написан класс (FormParser), разбирать который большого смысла нет, так как он почти полностью повторяет таковой из упомянутой статьи. Существенное отличие лишь в том, что использованный здесь позволяет изящно отклонить авторизацию приложения на последнем шаге, если вы вдруг передумали.

Реализация автопостинга записей на стену (wall.post)

1. При регистрации приложения указываем тип платформы «Standalone-приложение»

2. Формируем ссылку и переходим по ней в браузере

client_id — ID вашего приложения, остальные параметры без изменений.

3. После перехода по ссылке и авторизации произойдёт редирект на url, который содержит токен. Этот токен сохраняем.

d5f00aca2251588a1e6d67e401d1e…. — токен

4. Устанавливаем библиотеку vk-php-sdkcomposer require vkcom/vk-php-sdk

5. Применяем метод wall.post для публикации сообщений в группу:

Создаем приложение для авторизации через api vk

Для того, чтобы создать приложение нам понадобится:

Формирование ссылки для авторизации пользователя и получение токена (access token)

Подробная документация.

Формируем ссылку и выводим её на экран:

После нажатия на «Авторизация через Вконтакте» будет открыто окно диалога авторизации и пользователю будет предложено авторизовать приложение, разрешив доступ к необходимым настройкам, запрошенным при помощи параметра scope.После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу redirect_uri, указанному при открытии диалога авторизации.

Шаг 1. запрос на авторизацию приложения

Аккуратно составляем url запроса (про параметры можно прочитать здесь), отправляем запрос и парсим полученный html.

Шаг 2. авторизация пользователя

Реализованы методы _log_in() и _two_fact_auth() для [не]успешной авторизации пользователя в вк, если он не авторизован (а он точно не авторизован). Оба метода используют ранее определенные поля email, pswd, two_factor_auth и security_code.

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

Шаг 3. подтверждение permissions и получение access_token

Самое сложное позади. Теперь дело за малым. Используем наше усовершенствование парсера формы, чтоб найти в только что поступившем к нам html документе кнопку с надписью “Allow” и вытащить из нее url подтверждения авторизации. Рядом находится кнопка с отказом – сохраним и ее url.

Похожее:  api - How do I use basic HTTP authentication with the python Requests library? - Stack Overflow

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *