Как установить библиотеку vk api в python
Перейти к содержимому

Как установить библиотеку vk api в python

  • автор:

Библиотека vk для работы с VK API на Python

image
Привет, Хабр! Данная статья предназначена для тех, кто хочет разобраться с основами VK API на Python, так как статей по этому поводу нет (на Хабре есть одна статья, но она уже не совсем актуальна, так как некоторые методы не работают), а на других ресурсах мне удалось найти только вопросы пользователей, но никаких гайдов и прочего.

Для работы с VK API в Python есть две популярные библиотеки: vk и vk_api. Какая из библиотек лучше я судить не возьмусь, но скажу одно: у vk документация слишком мала (поэтому разбирался практически методом тыка) и на английском языке, а у vk_api документация более развернута (поэтому писать о данной библиотеке смысла не вижу) и на русском. Для меня не главное на каком языке документация, но для некоторых пользователей это играет большое значение при выборе.

Как вы уже поняли, в данной статье рассматривается работа с библиотекой vk.

Устанавливается данная библиотека следующей стандартной командой:

После того, как модуль будет установлен, нам необходимо создать приложение на сайте соц.сети. Я думаю, что большинство пользователей умеет это делать, поэтому информацию по этому шагу пропускаю. Если кто не умеет, то гуглим, не стесняемся.

После регистрации приложения нам нужен будет только его ID.

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

Таким образом мы получим фамилию, имя и id пользователя с user_id = 1. Если вам нужно получить еще какую-то информацию о пользователе, то в вызове метода нужно указать дополнительные поля, информация о которых должна быть возвращена:

Т.е. в данном случае мы получим не только информацию об имени и фамилии пользователя с но и информацию о том, находится ли пользователь сейчас на сайте (fields=’online’) и время последнего посещения, а также тип устройства (fields=’ last_seen’).

Действия без авторизации не предоставляют нам возможность использования VK API на полную мощь, поэтому рассмотрим авторизацию с вводом личных данных. Есть два способа: ввод логина и пароля, ввод токена. Чтобы авторизоваться с помощью токена нужно немного дополнить первый пример, а именно вот эту строку:

Дальше все остается так же, как и было раньше, без каких-либо изменений.

Следующий способ авторизации – ввод логина и пароля. В данном случае тоже все довольно просто и понятно:

Как видите, ничего сложного и все настолько просто и понятно, что даже не нуждается в дополнительных комментариях.

При такой авторизации нужно указывать не только логин, пароль и ID приложения, но то, к чему мы хотим получить доступ.

Например, у нас сейчас не указан доступ к стене пользователя, поэтому при попытке добавить запись на стену мы получим ошибку:

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

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

Вот и все. Вызов методов происходит по одному шаблону:

Таким образом мы отправляем сообщение hello пользователю с (т.е. самому себе). Названия параметров, которые нужно передавать при вызове какого-либо метода можно найти в документации, в описании самого метода.

Для более наглядной работы библиотеки я реализовал небольшую программку, которая следит когда пользователь зашел в ВК, а когда из него вышел (слабо верится, но может будет кому интересна). Код программы ниже и на GitHub.

Данная статья предназначалась лишь для понимания основ работы с VK API на Python с использованием библиотеки VK.

Python и LongPoll VK, или как запустить скрипт ВК и настроить Python, для новичков

Это новый вид статьи, в котором мы не будем говорить про PHP, многим python превосходит php, а для начинающих он покажется проще. Данная статья будет содержать в себе следующие шаги:

1. Установка Python 3.7.3 на Windows.

Установка не занимает много времени и умений. Переходим на официальный сайт https://www.python.org/downloads/ и скачиваем установщик себе на ПК.

Запускаем установщик, обязательно поставьте галочку возле надписи Add Python 3.7 to PATH, так у вас не возникнет проблем при работе с командной строкой Windows.

После установки запускаем командую строку:

И пишем команду:


Если Вы сделали все правильно, то увидите список команд и опций

На этом установка Python успешно завершена. Переходим к установке IDE PyCharm

2. Установка PyCharm и его настройка.

Переходим на сайт jetbrains.com/pycharm и скачиваем среду PyCharm Community, она бесплатная.

После чего устаналвиваем и запускаем PyCharm


Забегая вперед, у меня по умолчанию в настройках программы стоял Python 2.7

Нам нужна последняя версия, открываем File -> Settings. -> Project interpreter и из выпадающего меню выбираем последнюю версию, или добавляем ее туда нажав на Show All…

Теперь можно создавать новый проект.

3. Создание проекта и установка библиотеки VK_API

В Pycharm выбираем: File -> New Project и создаем новый проект, выбрав необходимые настройки:

Теперь создаем новый файл, назовем его new.py, так как Python использует расширение .py (английскими буквами, не путайте) расширение указывать не обязательно.

Пишем наш первый самый простой код:
И нажав правой кнопкой мыши по файлу, выбираем: Run ‘new’

Все работает. Теперь нам нужно установить библиотеку vk_api, для этого открываем терминал прямо в PyCharm и пишем команду:

Если в конце видите такой текст, библиотека успешно установлена, можно импортировать ее в проект и писать первый код:

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

4. Запуск скрипта используя LongPoll VK.

Для начала настроим наше сообщество.
Создаем ключ

Копируем ключ и вставляем его в наш скрипт:
Вместо ‘your_group_token‘ указываем ключ сообщества
Вместо ‘your_group_id‘ указываем ID нашего сообщества

Теперь переходим во вкладку Long Poll APIи включаем его

Далее, обязательно включаем тип событий, это частая ошибка при создании ботов, забыв включить события, бот не будет работать! Выбираем все что есть.

Вернемся к нашему коду. Давайте запустим наш скрипт и проверим как он будем обрабатывать события, запускаем скрипт:

Давайте покинем сообщество и снова вступим в него:

В консоли мы сразу увидели последние события. Немного добавим строк в наш код, и научим отвечать наше сообщество сообщением в ЛС на одно из событий:

Импортируем:
После:
Добавляем:
И отправляем сообщение самому пользователю:

Полный код:
напишем любое сообщение нашему боту и получим ответ:

Как узнать названия других событий? Они будут выводится в консоли, так как в коде используется:


Тут мы получили 2 события:

VkBotEventType.WALL_POST_NEW — Новый пост
VkBotEventType.GROUP_OFFICERS_EDIT — Выдача админ прав в самой группе

Документация и больше примеров можно посмотреть на GitHub . Если Вам интересен этот язык и вы хотите видеть больше статей по Python, пишите в комментарии об этом!

5. Разница между CallBack API и LongPoll

И все же в чем разница между CallBack API и Long Poll API? А разница есть и она большая.
Когда Вы используете CallBack API, ВК сам отправляет Вам происходящее событие на сервер, нам остается только получить его и обработать, у Long Poll API все наоборот, ВК ничего не отправляет, а хранит все события у себя на серверах, Вам нужно самому их получать и обрабатывать, Long Poll API подходит для высоко нагруженных проектов, в идеале советуем использовать оба типа получения событий. На этом наша статья подходит к концу, в следующий раз мы напишем как запустить Long Poll используя PHP, всем хорошего кодинга и настроения

  • Сергей Котов
  • 29.06.2019
  • 38 465
  • 12
  • 14

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

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