This library helps you easily create a python application to connect the WhatsApp API using service green-api.com
Project description
whatsapp-api-client-python
Python library for intagration with WhatsAPP messanger via API of green-api.com service. To use the library you have to get a registration token and an account id in the personal area . There is a free developer account tariff plan.
API
You can find REST API documentation by url. The library is a wrapper for REST API, so the documentation at the above url applies to the library as well.
Installation
pip install whatsapp-api-client-python
Authorization
To send a message or to exacute some other Green-API method, you have to have the WhatsApp account in the phone application to be authorized. To authorize your account please go to the personal area and scan a QR-code using the WhatsApp application.
Examples
How to initialize an object
from whatsapp_api_client_python import GreenAPI
greenAPI = GreenAPI(ID_INSTANCE, API_TOKEN_INSTANCE)
Sending a text message to a WhatsApp number
response = greenAPI.sending.send_message(
chatId="79001234567@c.us",
message="Any message"
)
Example url: send_message.py
Please note that keys can be obtained from environment variables:
from os import environ
ID_INSTANCE = environ["ID_INSTANCE"]
API_TOKEN_INSTANCE = environ["API_TOKEN_INSTANCE"]
Sending an image via URL
response = greenAPI.sending.send_file_by_url(
chatId="79001234567@c.us",
urlFile="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png",
fileName="googlelogo_color_272x92dp.png"
)
Example url: send_file_by_url.py
Sending an image by uploading from the disk
response = greenAPI.sending.send_file_by_upload(
chatId="79001234567@c.us",
path="C:\\Games\\PicFromDisk.png"
)
Example url: send_file_by_upload.py
Group creation and sending a message to the group
create_group_response = greenAPI.groups.create_group(
groupName="Group Name",
chatIds=["79001234567@c.us"]
)
chatId = create_group_response.data["chatId"]
send_message_response = greenAPI.sending.send_message(
chatId=chatId,
message="Any message"
)
IMPORTANT: If one tries to create a group with a non-existent number, WhatsApp may block the sender's number. The number in the example is non-existent.
Example url: create_group_and_send_message.py
Receive incoming messages by HTTP API
The general concept of receiving data in the Green API is described here To start receiving messages by the HTTP API you need to execute the library method:
from whatsapp_api_client_python.tools import Webhook
webhook = Webhook(greenAPI)
webhook.run_forever(handler)
handler - your function which should contain parameters:
Parameter | Description |
---|---|
type_webhook | Received message type (string) |
body | message body (dict or list) |
Message body types and formats here
This method will be called when an incoming message is received. Next, process messages according to the business logic of your system. Pass the handler to the run_forever function without brackets.
Examples list
Description | Module |
---|---|
Example of sending text | send_message.py |
Example of sending a picture by URL | send_file_by_url.py |
Example of sending a picture by uploading from the disk | send_file_by_upload.py |
Example of a group creation and sending a message to the group | create_group_and_send_message.py |
Example of incoming webhooks receiving | webhook_example.py |
The full list of the library methods
Method | Description | Documentation |
---|---|---|
account.getSettings |
The method is aimed for getting the current settings of the account | GetSettings.md |
account.getStateInstance |
The method is aimed for getting the account state | GetStateInstance.md |
account.getStatusInstance |
The method is aimed for getting the status of the account instance socket connection with WhatsApp | GetStatusInstance.md |
account.logout |
The method is aimed for logging out an account | Logout.md |
account.qr |
The method is aimed for getting QR code | QR.md |
account.reboot |
The method is aimed for rebooting an account | Reboot.md |
account.setProfilePicture |
The method is aimed for setting an account picture | SetProfilePicture.md |
account.setSettings |
The method is aimed for setting an account settings | SetSettings.md |
account.setSystemProxy |
The method is aimed for setting a system proxy. Use the method when you need to reset custom proxy settings to system ones | SetSystemProxy.md |
groups.addGroupParticipant |
Метод добавляет участника в групповой чат | AddGroupParticipant.md |
groups.createGroup |
The method adds a participant to a group chat. IMPORTANT: If one tries to create a group with a non-existent number, WhatsApp may block the sender's number. | CreateGroup.md |
groups.getGroupData |
The method gets group chat data | GetGroupData.md |
groups.leaveGroup |
The method makes the current account user leave the group chat | LeaveGroup.md |
groups.removeAdmin |
he method removes a participant from group chat administartion rights | RemoveAdmin.md |
groups.removeGroupParticipant |
The method removes a participant from a group chat | RemoveGroupParticipant.md |
groups.setGroupAdmin |
The method sets a group chat participant as an administrator | SetGroupAdmin.md |
groups.setGroupPicture |
The method sets a group picture | SetGroupPicture.md |
groups.updateGroupName |
The method changes a group chat name | UpdateGroupName.md |
journals.getChatHistory |
The method returns the chat message history | GetChatHistory.md |
journals.lastIncomingMessages |
The method returns the last incoming messages of the account. In the default mode the incoming messages for 24 hours are returned | GetChatHistory.md |
journals.lastOutgoingMessages |
The method returns the last outgoing messages of the account. In the default mode the last messages for 24 hours are returned | LastOutgoingMessages.md |
marking.readChat |
The method is aimed for marking messages in a chat as read. Either all messages or a specified message in a chat can be marked as read | ReadChat.md |
device.getDeviceInfo |
The method is aimed for getting information about the device (phone) running WhatsApp Business application | GetDeviceInfo.md |
queues.clearMessagesQueue |
The method is aimed for clearing the queue of messages to be sent | ClearMessagesQueue.md |
queues.showMessagesQueue |
The method is aimed for getting a list of messages in the queue to be sent | ShowMessagesQueue.md |
receiving.deleteNotification |
The method is aimed for deleting an incoming notification from the notification queue | DeleteNotification.md |
receiving.receiveNotification |
The method is aimed for receiving one incoming notification from the notifications queue | ReceiveNotification.md |
sending.sendButtons |
The method is aimed for sending a button message to a personal or a group chat | SendButtons.md |
sending.sendContact |
The method is aimed for sending a contact message | SendContact.md |
sending.sendFileByUpload |
The method is aimed for sending a file uploaded by form | SendFileByUpload.md |
sending.sendFileByUrl |
The method is aimed for sending a file uploaded by Url | SendFileByUrl.md |
sending.sendLink |
The method is aimed for sending a message with a link, by which an image preview, title and description will be added | SendLink.md |
sending.sendListMessage |
The method is aimed for sending a message with a select button from a list of values to a personal or a group chat | SendListMessage.md |
sending.sendLocation |
The method is aimed for sending a location message | SendLocation.md |
sending.sendMessage |
The method is aimed for sending a text message to a personal or a group chat | SendMessage.md |
sending.sendTemplateButtons |
The method is aimed for sending a message with template list interacrive buttons to a personal or a group chat | SendTemplateButtons.md |
serviceMethods.checkWhatsapp |
The method checks WhatsApp account availability on a phone number | CheckWhatsapp.md |
serviceMethods.getAvatar |
The method returns a user or a group chat avatar | GetAvatar.md |
serviceMethods.getContactInfo |
The method is aimed for getting information on a contact | GetContactInfo.md |
serviceMethods.getContacts |
The method is aimed for getting a list of the current account contacts | GetContacts.md |
serviceMethods.setDisappearingChat |
The method is aimed for changing settings of disappearing messages in chats. The standard settings of the application are to be used: 0 (off), 86400 (24 hours), 604800 (7 days), 7776000 (90 days) | SetDisappearingChat.md |
serviceMethods.archiveChat |
The method archives a chat. One can archive chats that have at least one incoming message | ArchiveChat.md |
serviceMethods.deleteMessage |
The method deletes a message from a chat | DeleteMessage.md |
serviceMethods.unarchiveChat |
The method unarchives a chat | UnarchiveChat.md |
serviceMethods.setDisappearingChat |
The method is aimed for changing settings of disappearing messages in chats | SetDisappearingChat.md |
webhooks.startReceivingNotifications |
The method is aimed for starting to receive webhooks | |
webhooks.stopReceivingNotifications |
The method is aimed for stopping to receive webhooks |
Service methods documentation
https://green-api.com/docs/api/
External products
- requests - for http requests
License
Licensed under MIT terms. Please see file LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file whatsapp_api_client_python-0.0.28.tar.gz
.
File metadata
- Download URL: whatsapp_api_client_python-0.0.28.tar.gz
- Upload date:
- Size: 14.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed15e48a8197292a3ac26a8eacc892fdc96500661d8e03c5974eb0be0535a57 |
|
MD5 | 03fa6f091fe483f5b62d152b4e69abf9 |
|
BLAKE2b-256 | ca74176b6b564212222e0df69844a15e0e0ed462ed114a58ac2b2b21fd3cdc44 |
File details
Details for the file whatsapp_api_client_python-0.0.28-py3-none-any.whl
.
File metadata
- Download URL: whatsapp_api_client_python-0.0.28-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3f426bb9ff6f1f305d2668b8b796f4987ff291065e0f3ff44703bbb87ee34722 |
|
MD5 | b5779c8e11da945e4cb9db1d6c731e11 |
|
BLAKE2b-256 | 2209c6eabe6eeea98c1e3cfb1aea636648c171b31917149e8af58920dc08dafd |