Что такое токен ВКонтакте и почему все хотят его получить?
Токен ВКонтакте — это специальный ключ ВКонтакте, позволяющий тем или иным лицам получать доступ к приложениям, получать доступ к фотографиям, сообщениям, переписке. Токен известен только владельцу страницы. То есть после получения токена с определенными правами мы практически получаем доступ к странице.
Давно писал статью о том, как читать чужую переписку ВКонтакте с помощью токена, а вот о получении своего или чужого токена написал очень мало. Поэтому сегодня я немного расширю эту тему.
Получите токен для ВК
Здесь все кажется простым, но каждый день мне пишут 5 человек с просьбой дать им токен, чего я не делаю, потому что у меня свои дела. Поэтому вкратце расскажу, как это делается, и приложу один из способов.
Для этого, как всегда, нам понадобится сайт vkserv.ru, который мы использовали в прошлый раз. В нем есть специальная вкладка «Получить токен ВКонтакте«.
Переходим в эту вкладку, авторизуемся на сайте. Мы не боимся за свои данные, потому что никуда не отправляем свой токен!
vk api получение аксес токена, простой скрипт
Далее видим единственную кнопку с названием «Перейти получить токен», нажимаем на нее (правда, других здесь нет).
Далее мы попадаем на страницу с множеством непонятных кнопок. Нам это интересно, потому что нижняя часть, которую я зачеркнул, нужна продвинутым пользователям (если интересно, я тоже об этом напишу).
Затем нажмите кнопку с надписью «Клевер», позже я объясню, почему именно эта кнопка.
После катапультирования на страницу подтверждения скопируйте адрес из строки и отправьте его жертве (если вы получите чужой токен). Если вы хотите получить свой, просто нажмите кнопку «Разрешить».
После того, как жертва нажмет кнопку «Разрешить», она будет перенаправлена на страницу с токеном ВКонтакте. Это выглядит так страшно.
В адресной строке будет находиться наш токен ВКонтакте. А чуть ниже просто страшная надпись «Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Поэтому вы можете потерять доступ к своей учетной записи.»
Нам просто нужно убедиться, что жертва отправляет нам ссылку из адресной строки браузера, которую он открыл. Здесь в игру вступает ваше воображение.
VK API #1 Receiving access token (standalone app)
Почему я рекомендовал вам использовать приложение Clover? А как получить чужой токен ВКонтакте.
это просто, здесь вы можете сказать своей жертве, что хотите увеличить достижения в игре и поделиться с вами одним способом, но вам нужно как минимум два человека и жетон каждого из них.
Также для правдоподобия спросите перед тем, как зайти в группу Clover ВКонтакте и зарегистрироваться, и только потом отпускать ссылку для получения токена.
После этого вы получаете токен, через некоторое время говорите спасибо, что все заработало и спасибо за помощь.
И мы сами сразу идем читать переписку нашей жертвы, ничего ей не говоря.
Вы уже знаете, что делать с токеном, это прочитать совпадение ВКонтакте с токеном или перейти на страницу ВК по этому же токену. О втором способе я опубликую чуть позже.
Если хотите, я опубликую на сайте больше способов получить чужой токен, которые будут работать в 90% случаев. Пишите в комментариях и подписывайтесь на телеграм-канал, если будет достаточно людей обязательно напишу!
Источник: bloger-zoom.ru
Подключение и работа с vk api
Социальные сети стали неотъемлемым инструментом продвижения сайтов. Для раскрутку сайта через соц. сети следует создать группу или страничку данного сайта. Набирать подписчиков, выкладывать новости на стену и много чего ещё (это тема отдельной заметки). Многие эти процессы можно автоматизировать используя API (интерфейс прикладного программирования) соответствующей социальной сети. В этой заметке я разберу как подключиться к vk api (вконтакте), как начать работать c вк апи, а так же приведу несколько примеров работы с api вконтакте.
Создание приложения вконтакте
И так приступим. Vk api имеет много методов, но одним из основных их различий является то, что для выполнения запросов к вк апи через некоторые методы требуется специальный ключ доступа — токен (access_token). Получить его можно создав своё приложение. Нам предлагают несколько видов приложений, но я выбираю тип Standalone. Мне его хватает.
Для начала создания приложения переходим по ссылке и попадаем в следующее окно.
Здесь мы выбираем тип и название нашего приложения. Нажимаем подключить приложение и получаем на номер телефона, привязанному к аккаунту вк из которого мы создаём приложение, смс с кодом. Вводим его и переходим в следующее окно. В этом окне переходим в вкладку настройки.
В вкладке настройки мы видим поля с названием ID приложения и защитный ключ. Записываем куда нибудь эти данные. Больше ничего в вкладках я не делал. Состояние приложения оставил в положении отключено. Жмём сохранить настройки.
Всё, мы создали приложение вконтакте.
Получение токена (access_token) api вк
Что бы получить токен нам нужно создать ссылку определённого типа. С помощью этой ссылки мы отправим запрос серверу вк апи, в ответе сервера мы получим нужный нам токен (access_token). Синтаксис построения ссылки.
https://oauth.vk.com/authorize?client_id=[ID приложения]redirect_uri=https://oauth.vk.com/blank.htmlresponse_type=token
ну а теперь несколько примеров работы с апи vk
$userid=12345; $mytoken=56789; /*вернёт объект с значениями пола и дня рождения пользователя*/ $request_params = array( ‘user_id’ => $userid, ‘fields’ => ‘sex’, ‘fields’ => ‘bdate’ ); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents(‘https://api.vk.com/method/users.get?’. $get_params)); /*проверка пользователя на бан вк*/ $request_params = array( ‘user_id’ => $user_id, ‘fields’ => ‘deactivated’ ); $get_params = http_build_query($request_params); $result = json_decode(file_get_contents(‘https://api.vk.com/method/users.get?’. $get_params)); if(isset($result->response[0]->deactivated)) < echo «Страница заморожена или удалена»; >/*отправим сообщение пользователю с user_id=222222*/ $mesage=’Привет, как дела?’; //кодируем строку $msg=urlencode($mesage); $result = json_decode(file_get_contents(‘https://api.vkontakte.ru/method/ messages.send?user_id=222222access_token=’.$mytoken)); /*приглосим в друзья пользователя с user_id=222222*/ $mesage=’Давайте дружить’; $msg=urlencode($mesage); $result=json_decode(file_get_contents(‘https://api.vkontakte.ru/ method/friends.adduser_id=222222access_token=’.$mytoken));
Методов у апи много, так что советую читать документацию. Конечно запросы не всегда выполняются правильно и возвращают коды ошибок. Ошибки можно посмотреть здесь . Так что вот так вот просто можно подключиться к api vk и автоматизировать свои действия в контакте.
Источник: aweb34.ru
Авторизация в VK для людей
Здравствуй, дорогой читатель. Если тебе хотя бы однажды доводилось работать с API Вконтакте и при этом писать все на python , вероятно, авторизация приложения заставила тебя сделать несколько приседаний, после которых ног либо не чувствуешь и падаешь в обморок, либо вкачиваешь квадрицепс и все же пробиваешь API, как Ван Дамм.
По какой-то причине этот, казалось бы, самый непримечательный этап поначалу отнимает огромное количество сил и времени. Моя задача: помочь читателям Хабра избежать травм ног.
Далее я предлагаю рассмотреть небольшую библиотеку, позволяющую в одну строчку авторизовать свое приложение для конкретного пользователя и получить access_token . В конце статьи представлена ссылка на github-репозиторий этой библиотеки с quickstart’ом в README -файле.
Задача
Хотим небольшой модуль, который позволяет провести авторизацию красиво, универсально и максимально надежно, а использовать который очень просто.
Стоит сказать, что данное решение является усовершенствованием и обобщением варианта, предложенного в этой статье.
Итак, используем python3.5 , библиотеку для html запросов requests и getpass для скрытого ввода пароля.
Наша задача: несколько раз обратиться по верному адресу, каждый раз парсить , отправлять ответ и наконец получить желанный access_token .
Реализация
Начнем с создания класса. При инициализации будем требовать список «разрешений», к которым приложение хочет получить доступ, id этого приложения и версию API VK. Плюсом добавим несколько необязательных параметров, значение каждого из которых прояснится далее.
Метод __init__
class VKAuth(object): def __init__(self, permissions, app_id, api_v, email=None, pswd=None, two_factor_auth=False, security_code=None, auto_access=True): «»» Args: permissions: list of Strings with permissions to get from API app_id: (String) vk app id that one can get from vk.com api_v: (String) vk API version «»» self.session = requests.Session() self.form_parser = FormParser() self.user_id = None self.access_token = None self.response = None self.permissions = permissions self.api_v = api_v self.app_id = app_id self.two_factor_auth= two_factor_auth self.security_code = security_code self.email = email self.pswd = pswd self.auto_access = auto_access if security_code != None and two_factor_auth == False: raise RuntimeError(‘Security code provided for non-two-factor authorization’)
Как было сказано в уже упомянутой статье, нам необходимо искусно ворочать cookie и redirect’ы. Все это за нас делает библиотека requests с объектом класса Session. Заведем и себе такой в поле self.session . Для парсинга html документа используется стандартный класс HTMLParser из модуля html.parser . Для парсера тоже написан класс ( FormParser ), разбирать который большого смысла нет, так как он почти полностью повторяет таковой из упомянутой статьи. Существенное отличие лишь в том, что использованный здесь позволяет изящно отклонить авторизацию приложения на последнем шаге, если вы вдруг передумали.
Поля user_id и access_token будут заполнены после успешной авторизации, response хранит в себе результат последнего html запроса.
Пользователю библиотеки предоставим один-единственный метод – authorize , который совершает 3 шага:
- запрос на авторизацию приложения
- авторизация пользователя
2.1 введение кода-ключа в случае двух-факторной авторизации - подтверждение разрешения на использование permissions
Пройдемся по каждому шагу.
Шаг 1. Запрос на авторизацию приложения
Аккуратно составляем url запроса (про параметры можно прочитать здесь), отправляем запрос и парсим полученный html.
Метод authorize для Шага 1
def authorize(self): api_auth_url = ‘https://oauth.vk.com/authorize’ app_id = self.app_id permissions = self.permissions redirect_uri = ‘https://oauth.vk.com/blank.html’ display = ‘wap’ api_version = self.api_v auth_url_template = ‘?client_id=redirect_uri=v= # handling two-factor authentication # expecting a security code to enter here if self.two_factor_auth: self._two_fact_auth()
Метод _log_in для Шага 2
def _log_in(self): if self.email == None: self.email = » while self.email.strip() == »: self.email = input(‘Enter an email to log in: ‘) if self.pswd == None: self.pswd = » while self.pswd.strip() == »: self.pswd = getpass.getpass(‘Enter the password: ‘) self._submit_form() if not self._parse_form(): raise RuntimeError(‘No element found. Please, check url address’) # if wrong email or password if ‘pass’ in self.form_parser.params: print(‘Wrong email or password’) self.email = None self.pswd = None return False elif ‘code’ in self.form_parser.params and not self.two_factor_auth: raise RuntimeError(‘Two-factor authentication expected from VK.nChange `two_factor_auth` to `True` and provide a security code.’) else: return True
Метод _two_fact_auth для Шага 2
def _two_fact_auth(self): prefix = ‘https://m.vk.com’ if prefix not in self.form_parser.url: self.form_parser.url = prefix + self.form_parser.url if self.security_code == None: self.security_code = input(‘Enter security code for two-factor authentication: ‘) self._submit_form() if not self._parse_form(): raise RuntimeError(‘No element found. Please, check url address’)
Шаг 3. Подтверждение permissions и получение access_token
Самое сложное позади.
Теперь дело за малым. Используем наше усовершенствование парсера формы, чтоб найти в только что поступившем к нам html документе кнопку с надписью «Allow» и вытащить из нее url подтверждения авторизации. Рядом находится кнопка с отказом – сохраним и ее url. Поле auto_access по умолчанию находится в состоянии True , так что это подтверждение ни чуть не должно осложнить нам жизнь.
Наконец, сохраним полученные access_token и user_id из url, который был передан после подтверждения авторизации.
Теперь можно весело пользоваться VK API.
Метод authorize для Шага 3
# allow vk to use this app and access self.permissions self._allow_access() # now get access_token and user_id self._get_params()
Метод _allow_access для Шага 3
def _allow_access(self): parser = self.form_parser if ‘submit_allow_access’ in parser.params and ‘grant_access’ in parser.url: if not self.auto_access: answer = » msg = ‘Application needs access to the following details in your profile:n’ + str(self.permissions) + ‘n’ + ‘Allow it to use them? (yes or no)’ attempts = 5 while answer not in [‘yes’, ‘no’] and attempts > 0: answer = input(msg).lower().strip() attempts-=1 if answer == ‘no’ or attempts == 0: self.form_parser.url = self.form_parser.denial_url print(‘Access denied’) self._submit_form(<>)
Метод _get_params для Шага 3
def _get_params(self): try: params = self.response.url.split(‘#’)[1].split(‘https://habr.com/ru/articles/306022/» target=»_blank»]habr.com[/mask_link]