whatsapp-api-client-python
whatsapp-api-client-python is a library for integration with WhatsApp messenger using the API
service green-api.com . You should get a registration token and an account ID in
your personal cabinet to use the library. There is a free developer account tariff.
The documentation for the REST API can be found at the link . The library is a wrapper
for the REST API, so the documentation at the link above also applies.
To send a message or perform other GREEN API methods, the WhatsApp account in the phone app must be authorized. To
authorize the account, go to your cabinet and scan the QR code using the WhatsApp app.
python -m pip install whatsapp-api-client-python
from whatsapp_api_client_python import API
How to initialize an object
greenAPI = API.GreenAPI(
"1101000001", "d75b3a66374942c5b3c019c698abc2067e151558acbd412345"
)
Sending a text message to a WhatsApp number
Link to example: sendTextMessage.py .
response = greenAPI.sending.sendMessage("11001234567@c.us", "Message text")
print(response.data)
Link to example: sendPictureByLink.py .
response = greenAPI.sending.sendFileByUrl(
"11001234567@c.us",
"https://download.samplelib.com/png/sample-clouds2-400x300.png",
"sample-clouds2-400x300.png",
"Sample PNG"
)
print(response.data)
Sending an image by uploading from the disk
Link to example: sendPictureByUpload.py .
response = greenAPI.sending.sendFileByUpload(
"11001234567@c.us",
"data/rates.png",
"rates.png",
"Available rates"
)
print(response.data)
Group creation and sending a message to the group
Attention . 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.
Link to example: createGroupAndSendMessage.py .
create_group_response = greenAPI.groups.createGroup(
"Group Name", ["11001234567@c.us"]
)
if create_group_response.code == 200:
send_message_response = greenAPI.sending.sendMessage(
create_group_response.data["chatId"], "Message text"
)
Receive incoming messages by HTTP API
Link to example: receiveNotification.py .
The general concept of receiving data in the GREEN API is described here . To start receiving notifications by the HTTP API you need to execute the library method:
greenAPI.webhooks.startReceivingNotifications(onEvent)
onEvent - your function which should contain parameters:
Parameter
Description
typeWebhook
received notification type (str)
body
notification body (dict)
Notification body types and formats can be found here .
This method will be called when an incoming notification is received. Next, process notifications according to the
business logic of your system.
Sending a polling message
Link to example: sendPoll.py .
response = greenAPI.sending.sendPoll(
"11001234567@c.us",
"Please choose a color:",
[
{"optionName": "Red"},
{"optionName": "Green"},
{"optionName": "Blue"}
]
)
print(response.data)
The full list of the library methods
API method
Description
Documentation link
account.getSettings
The method is designed to get the current settings of the account
GetSettings
account.getWaSettings
The method is designed to get information about the WhatsApp account
GetWaSettings
account.setSettings
The method is designed to set the account settings
SetSettings
account.getStateInstance
The method is designed to get the state of the account
GetStateInstance
account.getStatusInstance
The method is designed to get the socket connection state of the account instance with WhatsApp
GetStatusInstance
account.reboot
The method is designed to restart the account
Reboot
account.logout
The method is designed to unlogin the account
Logout
account.qr
The method is designed to get a QR code
QR
account.setProfilePicture
The method is designed to set the avatar of the account
SetProfilePicture
account.getAuthorizationCode
The method is designed to authorize an instance by phone number
GetAuthorizationCode
device.getDeviceInfo
The method is designed to get information about the device (phone) on which the WhatsApp Business application is running
GetDeviceInfo
groups.createGroup
The method is designed to create a group chat
CreateGroup
groups.updateGroupName
The method changes the name of the group chat
UpdateGroupName
groups.getGroupData
The method gets group chat data
GetGroupData
groups.addGroupParticipant
The method adds a participant to the group chat
AddGroupParticipant
groups.removeGroupParticipant
The method removes the participant from the group chat
RemoveGroupParticipant
groups.setGroupAdmin
The method designates a member of a group chat as an administrator
SetGroupAdmin
groups.removeAdmin
The method deprives the participant of group chat administration rights
RemoveAdmin
groups.setGroupPicture
The method sets the avatar of the group
SetGroupPicture
groups.leaveGroup
The method logs the user of the current account out of the group chat
LeaveGroup
journals.getChatHistory
The method returns the chat message history
GetChatHistory
journals.getMessage
The method returns a chat message
GetMessage
journals.lastIncomingMessages
The method returns the most recent incoming messages of the account
LastIncomingMessages
journals.lastOutgoingMessages
The method returns the last sent messages of the account
LastOutgoingMessages
queues.showMessagesQueue
The method is designed to get the list of messages that are in the queue to be sent
ShowMessagesQueue
queues.clearMessagesQueue
The method is designed to clear the queue of messages to be sent
ClearMessagesQueue
marking.readChat
The method is designed to mark chat messages as read
ReadChat
receiving.receiveNotification
The method is designed to receive a single incoming notification from the notification queue
ReceiveNotification
receiving.deleteNotification
The method is designed to remove an incoming notification from the notification queue
DeleteNotification
receiving.downloadFile
The method is for downloading received and sent files
DownloadFile
sending.sendMessage
The method is designed to send a text message to a personal or group chat
SendMessage
sending.sendButtons
The method is designed to send a message with buttons to a personal or group chat
SendButtons
sending.sendTemplateButtons
The method is designed to send a message with interactive buttons from the list of templates in a personal or group chat
SendTemplateButtons
sending.sendListMessage
The method is designed to send a message with a selection button from a list of values to a personal or group chat
SendListMessage
sending.sendFileByUpload
The method is designed to send a file loaded through a form (form-data)
SendFileByUpload
sending.sendFileByUrl
The method is designed to send a file downloaded via a link
SendFileByUrl
sending.uploadFile
The method is designed to upload a file to the cloud storage, which can be sent using the sendFileByUrl method
UploadFile
sending.sendLocation
The method is designed to send a geolocation message
SendLocation
sending.sendContact
The method is for sending a message with a contact
SendContact
sending.sendLink
The method is designed to send a message with a link that will add an image preview, title and description
SendLink
sending.forwardMessages
The method is designed for forwarding messages to a personal or group chat
ForwardMessages
sending.sendPoll
The method is designed for sending messages with a poll to a private or group chat
SendPoll
serviceMethods.checkWhatsapp
The method checks if there is a WhatsApp account on the phone number
CheckWhatsapp
serviceMethods.getAvatar
The method returns the avatar of the correspondent or group chat
GetAvatar
serviceMethods.getContacts
The method is designed to get a list of contacts of the current account
GetContacts
serviceMethods.getContactInfo
The method is designed to obtain information about the contact
GetContactInfo
serviceMethods.deleteMessage
The method deletes the message from chat
DeleteMessage
serviceMethods.editMessage
The method edits the message in chat
EditMessage
serviceMethods.archiveChat
The method archives the chat
ArchiveChat
serviceMethods.unarchiveChat
The method unarchives the chat
UnarchiveChat
serviceMethods.setDisappearingChat
The method is designed to change the settings of disappearing messages in chats
SetDisappearingChat
webhooks.startReceivingNotifications
The method is designed to start receiving new notifications
webhooks.stopReceivingNotifications
The method is designed to stop receiving new notifications
Service methods documentation
https://green-api.com/en/docs/api/ .
Licensed under
Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)
terms.
Please see file LICENSE .