Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bryzgaloff/vk
Python VK API light wrapper
https://github.com/bryzgaloff/vk
python python2 python3 vk vk-api vkapi vkontakte vkontakte-api
Last synced: 2 months ago
JSON representation
Python VK API light wrapper
- Host: GitHub
- URL: https://github.com/bryzgaloff/vk
- Owner: bryzgaloff
- Created: 2017-09-26T14:46:28.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-10T17:13:39.000Z (9 months ago)
- Last Synced: 2024-09-27T05:03:24.612Z (3 months ago)
- Topics: python, python2, python3, vk, vk-api, vkapi, vkontakte, vkontakte-api
- Language: Python
- Size: 10.7 KB
- Stars: 3
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Простая обертка для [API ВКонтакте](https://vk.com/dev/manuals) (далее — Обертка) для Python 2&3, основано на [dimka665/vk](https://github.com/dimka665/vk).
# Требования
* [requests](https://pypi.org/project/requests/)# Пример использования
```bash
$ git clone https://github.com/bryzgaloff/vk.git$ pip install requests
$ python
```
```python
>>> from vk import API# если у вас есть access token:
>>> access_token = ''
>>> api = API(access_token)# если у вас нет access token'а, но есть APP ID
>>> api = API(
... email='[email protected]',
... password='your_password',
... app_id='your_app_id',
... )# если нет ни того, ни другого, смотрите раздел FAQ
>>> api.users.get(user_ids=1)
[{'id': 1, 'first_name': 'Павел', 'last_name': 'Дуров'}]
```# FAQ
## Можно ли использовать API без токена?
Нет, нельзя, [начиная с апреля 2017 года](https://vk.com/dev/service_token?f=2.%20%D0%A7%D1%82%D0%BE%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%81%D1%8F).## Как получить токен или APP ID?
1. [Авторизуйтесь](https://vk.com/login) ВКонтакте.
2. [Создайте новое приложение](https://vk.com/editapp?act=create).
1. Введите желаемое название.
2. Выберите опцию «Standalone-приложение»
3. Нажмите «Подключить приложение».
4. Введите код, полученный в СМС-сообщении.
3. В новом созданном приложении откройте пункт «Настройки» в меню слева.APP ID — семизначное число, записанное в поле «ID приложения».
В качестве токена вы можете использовать сервисный ключ доступа, однако в таком случае доступ у API будет такой же, как у неавторизованного пользователя. Чтобы доступ у API соответствовал доступу авторизованного пользователя, необходимо получить соответствующий токен — и Обертка получит его самостоятельно, если вы укажите в качестве аргументов конструктора `API` e-mail (`email`), пароль (`password`) и APP ID (`app_id`).
Можно одновременно указать `access_token` и аргументы для авторизации — в таком случае `access_token` будет перезапрошен Оберткой при первом неуспешном вызове метода API. Максимальное число перезапросов токенов регулируется аргументом `max_token_requests`.
## Существуют ли у Обертки какие-то ограничения?
1. В приложении можно использовать инстанс API только для одного APP ID / access token'а (т.к. класс `API` является [Singleton](https://tproger.ru/translations/design-patterns-simple-words-1/#16)'ом).
2. Существуют также [частотные и количественные ограничения](https://vk.com/dev/api_requests?f=3.%20%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F%20%D0%B8%20%D1%80%D0%B5%D0%BA%D0%BE%D0%BC%D0%B5%D0%BD%D0%B4%D0%B0%D1%86%D0%B8%D0%B8) самого API ВКонтакте. Частотные ограничения Обертка контролирует сама — ограничение на максимальное число запросов в секунду контролируется аргументом `max_token_requests` конструктора `API`.
3. Не поддерживаются аккаунты с 2-факторной авторизацией (см. [«Подтверждение входа»](https://vk.com/settings?act=security)).## Какая версия API используется?
По умолчанию — 5.68. Вы можете указать версию самостоятельно через аргумент `v` конструктора `API`.# Документация
Параметры конструктора `API`:
| Имя | Назначение | Значение по умолчанию |
| --- | --- | --- |
| access_token | access token | `None` |
| email | E-mail пользователя для авторизации | `None` |
| password | Пароль пользователя для авторизации | `None` |
| app_id | APP ID | `None` |
| scope | Битовая маска [настроек доступа приложения](https://vk.com/dev/permissions) | `'offline'` |
| timeout | Таймаут для запросов в секудах | `30` |
| max_requests_per_seconds | Максимально допустимое число запросов в секунду | `3` |
| max_token_requests | Максимальное число попыток для перезапроса токена | `2` |
| **method_default_args | kwargs для запросов к API по умолчанию | |Дальнейшее взаимодействие с `API` сводится к формированию запросов к API согласно [документации](https://vk.com/dev/methods).