Python библиотека для интеграции с мессенджером WhatsAPP через API сервиса green-api.com. Чтобы воспользоваться библиотекой нужно получить регистрационный токен и id аккаунта в личном кабинете. Есть бесплатный тариф аккаунта разработчика.
Документация к REST API находится по ссылке. Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.
pip install whatsapp-api-client-python
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)
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']
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