/whatsapp-api-client-python

This library helps you easily create a python application with WhatsApp API

Primary LanguagePythonMIT LicenseMIT

whatsapp-api-client-python

Python application Upload Python Package

Python библиотека для интеграции с мессенджером WhatsAPP через API сервиса green-api.com. Чтобы воспользоваться библиотекой нужно получить регистрационный токен и id аккаунта в личном кабинете. Есть бесплатный тариф аккаунта разработчика.

API

Документация к REST API находится по ссылке. Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.

Установка

pip install whatsapp-api-client-python

Import

from whatsapp_api_client_python import API

Авторизация

Чтобы отправить сообщение или выполнить другой метод Green-API, аккаунт WhatsApp в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в личный кабинет и сканируйте QR-код с использованием приложения WhatsApp.

Примеры

Как инициализировать объект

restApi = API.RestApi('https://api.green-api.com', 
                        ID_INSTANCE, 
                        API_TOKEN_INSTANCE)

Отправка текстового сообщения на номер WhatsApp

result = restApi.sending.sendMessage('79001234567@g.us', 'Message text')

Ссылка на пример: sendText.py

Обратите внимание, что ключи можно получать из переменных среды:

from os import environ

ID_INSTANCE = environ['ID_INSTANCE']
API_TOKEN_INSTANCE = environ['API_TOKEN_INSTANCE']

Отправка картинки по URL

result = restApi.sending.sendFileByUrl('120363025955348359@g.us', 
        'https://www.google.ru/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png', 
        'googlelogo_color_272x92dp.png', 'Google logo')

Ссылка на пример: sendPictureByLink.py

Отправка картинки загрузкой с диска

result = restApi.sending.sendFileByUpload('120363025955348359@g.us', 
        'C:\Games\PicFromDisk.png', 
        'PicFromDisk.png', 'Picture from disk')

Ссылка на пример: sendPictureByUpload.py

Создание группы и отправка сообщения в эту группу

chatIds = [
    "79001234567@c.us"
]
resultCreate = restApi.groups.createGroup('GroupName', 
    chatIds)

if resultCreate.code == 200:
    resultSend = restApi.sending.sendMessage(resultCreate.data['chatId'], 
        'Message text')

ВАЖНО: Если попытаться создать группу с несуществующим номером WhatsApp может заблокировать номер отправителя. Номер в примере не существует.

Ссылка на пример: createGroupAndSendMessage.py

Получить входящие уведомления

resultReceive = restApi.receiving.receiveNotification()

Список примеров

Описание Модуль
Пример отправки текста sendText.py
Пример отправки картинки по URL sendPictureByLink.py
Пример отправки картинки загрузкой с диска sendPictureByUpload.py
Пример создание группы и отправка сообщения в группу createGroupAndSendMessage.py
Пример получения входящих уведомлений receiveNotification.py

Полный список методов библиотеки

Метод Описание Документация
account.getSettings Метод предназначен для получения текущих настроек аккаунта GetSettings.md
account.getStateInstance Метод предназначен для получения состояния аккаунта GetStateInstance.md
account.getStatusInstance Метод предназначен для получения состояния сокета соединения инстанса аккаунта с WhatsApp GetStatusInstance.md
account.logout Метод предназначен для разлогинивания аккаунта Logout.md
account.qr Метод предназначен для получения QR-кода QR.md
account.reboot Метод предназначен для перезапуска аккаунта Reboot.md
account.setProfilePicture Метод предназначен для установки аватара аккаунта SetProfilePicture.md
account.setSettings Метод предназначен для установки настроек аккаунта SetSettings.md
account.setSystemProxy Метод предназначен для установки системного прокси. Нужно используйте метод, когда требуется сбросить пользовательские настройки прокси на системные SetSystemProxy.md
groups.addGroupParticipant Метод добавляет участника в групповой чат AddGroupParticipant.md
groups.createGroup Метод добавляет участника в групповой чат. ВАЖНО: Если попытаться создать группу с несуществующим номером WhatsApp может заблокировать номер отправителя. CreateGroup.md
groups.getGroupData Метод получает данные группового чата GetGroupData.md
groups.leaveGroup Метод производит выход пользователя текущего аккаунта из группового чата LeaveGroup.md
groups.removeAdmin Метод лишает участника прав администрирования группового чата RemoveAdmin.md
groups.removeGroupParticipant Метод удаляет участника из группового чата RemoveGroupParticipant.md
groups.setGroupAdmin Метод назначает участника группового чата администратором SetGroupAdmin.md
groups.setGroupPicture Метод устанавливает аватар группы SetGroupPicture.md
groups.updateGroupName Метод изменяет наименование группового чата UpdateGroupName.md
journals.getChatHistory Метод возвращает историю сообщений чата GetChatHistory.md
journals.lastIncomingMessages Метод возвращает крайние входящие сообщения аккаунта. По умолчанию возвращаются последние сообщения за 24 часа GetChatHistory.md
journals.lastOutgoingMessages Метод возвращает крайние отправленные сообщения аккаунта. По умолчанию возвращаются последние сообщения за 24 часа LastOutgoingMessages.md
marking.readChat Метод предназначен для отметки сообщений в чате прочитанными. Могут быть отмечены прочитанными все сообщения в чате или только одно заданное сообщение ReadChat.md
device.getDeviceInfo Метод предназначен для получения информации об устройстве (телефоне), на котором запущено приложение WhatsApp Business GetDeviceInfo.md
queues.clearMessagesQueue Метод предназначен для очистки очереди сообщений на отправку ClearMessagesQueue.md
queues.showMessagesQueue Метод предназначен для получения списка сообщений, находящихся в очереди на отправку ShowMessagesQueue.md
receiving.deleteNotification Метод предназначен для удаления входящего уведомления из очереди уведомлений DeleteNotification.md
receiving.receiveNotification Метод предназначен для получения одного входящего уведомления из очереди уведомлений ReceiveNotification.md
sending.sendButtons Метод предназначен для отправки сообщения с кнопками в личный или групповой чат SendButtons.md
sending.sendContact Метод предназначен для отправки сообщения с контактом SendContact.md
sending.sendFileByUpload Метод предназначен для отправки файла, загружаемого через форму SendFileByUpload.md
sending.sendFileByUrl Метод предназначен для отправки файла, загружаемого по ссылке SendFileByUrl.md
sending.sendLink Метод предназначен для отправки сообщения со ссылкой, по которой будут добавлены превью изображения, заголовок и описание SendLink.md
sending.sendListMessage Метод предназначен для отправки сообщения с кнопкой выбора из списка значений в личный или групповой чат SendListMessage.md
sending.sendLocation Метод предназначен для отправки сообщения геолокации SendLocation.md
sending.sendMessage Метод предназначен для отправки текстового сообщения в личный или групповой чат SendMessage.md
sending.sendTemplateButtons Метод предназначен для отправки сообщения с интерактивными кнопками из перечня шаблонов в личный или групповой чат SendTemplateButtons.md
serviceMethods.checkWhatsapp Метод проверяет наличие аккаунта WhatsApp на номере телефона CheckWhatsapp.md
serviceMethods.getAvatar Метод возвращает аватар корреспондента или группового чата GetAvatar.md
serviceMethods.getContactInfo Метод предназначен для получения информации о контакте GetContactInfo.md
serviceMethods.getContacts Метод предназначен для получения списка контактов текущего аккаунта GetContacts.md
serviceMethods.setDisappearingChat Метод предназначен для изменения настроек исчезающих сообщений в чатах. Нужно использовать стандартные настройки приложения: 0 (выключено), 86400 (24 часа), 604800 (7 дней), 7776000 (90 дней) SetDisappearingChat.md
serviceMethods.archiveChat Метод архивирует чат. Архивировать можно чаты, в которых есть хотя бы одно входящее сообщение ArchiveChat.md
serviceMethods.deleteMessage Метод удаляет сообщение из чата DeleteMessage.md
serviceMethods.unarchiveChat Метод разархивирует чат UnarchiveChat.md
serviceMethods.setDisappearingChat Метод предназначен для изменения настроек исчезающих сообщений в чатах SetDisappearingChat.md
webhooks.startReceivingNotifications Метод предназначен для запуска получения вебхуков <библиотечный метод>
webhooks.stopReceivingNotifications Метод предназначен для остановки получения вебхуков <библиотечный метод>

Документация по методам сервиса

https://green-api.com/docs/api/

Сторонние продукты

  • requests - для http запросов

Лицензия

Лицензировано на условиях MIT. Смотрите файл LICENSE