max-api-client-python - библиотека для интеграции с мессенджером MAX через API сервиса green-api.com. Чтобы воспользоваться библиотекой, нужно получить регистрационный токен и ID аккаунта в личном кабинете. Есть бесплатный тариф аккаунта разработчика.
Документация к REST API находится по ссылке. Библиотека является обёрткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.
Чтобы отправить сообщение или выполнить другие методы GREEN API, аккаунт MAX в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в личный кабинет, запросите SMS код. Введите SMS код, после чего инстанс будет авторизован.
python -m pip install max-api-client-pythonfrom max_api_client_python import API
greenAPI = API.GreenAPI(
"3100000001", "d75b3a66374942c5b3c019c698abc2067e151558acbd412345"
)
Ссылка на пример: sendTextMessage.py.
response = greenAPI.sending.sendMessage("10000000", "Message text")
print(response.data)
Ссылка на пример: sendPictureByLink.py.
response = greenAPI.sending.sendFileByUrl(
"10000000",
"https://download.samplelib.com/png/sample-clouds2-400x300.png",
"sample-clouds2-400x300.png",
"Sample PNG"
)
print(response.data)
Ссылка на пример: sendPictureByUpload.py.
response = greenAPI.sending.sendFileByUpload(
"10000000",
"data/rates.png",
"rates.png",
"Available rates"
)
print(response.data)
Ссылка на пример: createGroupAndSendMessage.py.
create_group_response = greenAPI.groups.createGroup(
"Group Name", ["10000000"]
)
if create_group_response.code == 200:
send_message_response = greenAPI.sending.sendMessage(
create_group_response.data["chatId"], "Message text"
)
Ссылка на пример: receiveNotification.py.
Общая концепция получения данных в GREEN API описана здесь. Для старта получения уведомлений через HTTP API требуется выполнить метод библиотеки:
greenAPI.webhooks.startReceivingNotifications(onEvent)
onEvent - ваша функция, которая должен содержать параметры:
| Параметр | Описание |
|---|---|
| typeWebhook | тип полученного уведомления (str) |
| body | тело уведомления (dict) |
Типы и форматы тел уведомлений находятся здесь.
Эта функция будет вызываться при получении входящего уведомления. Далее обрабатываете уведомления согласно бизнес-логике вашей системы.
| Описание | Модуль |
|---|---|
| Пример отправки текста | sendTextMessage.py |
| Пример отправки картинки по URL | sendPictureByLink.py |
| Пример отправки картинки загрузкой с диска | sendPictureByUpload.py |
| Пример создание группы и отправка сообщения в группу | createGroupAndSendMessage.py |
| Пример получения входящих уведомлений | receiveNotification.py |
| Пример создания инстанса | createInstance.py |
| Метод API | Описание | Ссылка на документацию |
|---|---|---|
account.getSettings |
Метод предназначен для получения текущих настроек аккаунта | GetSettings |
account.getAccountSettings |
Метод предназначен для получения информации о аккаунте MAX | GetAccountSettings |
account.setSettings |
Метод предназначен для установки настроек аккаунта | SetSettings |
account.getStateInstance |
Метод предназначен для получения состояния аккаунта | GetStateInstance |
account.getStatusInstance |
Метод предназначен для получения состояния сокета соединения инстанса аккаунта с MAX | GetStatusInstance |
account.reboot |
Метод предназначен для перезапуска аккаунта | Reboot |
account.logout |
Метод предназначен для разлогинивания аккаунта | Logout |
account.setProfilePicture |
Метод предназначен для установки аватара аккаунта | SetProfilePicture |
account.startAuthorization |
Метод предназначен для запроса кода для авторизации | StartAuthorization |
account.sendAuthorizationCode |
Метод предназначен для авторизации инстанса по номеру телефона | SendAuthorizationCode |
groups.createGroup |
Метод предназначен для создания группового чата | CreateGroup |
groups.updateGroupName |
Метод изменяет наименование группового чата | UpdateGroupName |
groups.getGroupData |
Метод получает данные группового чата | GetGroupData |
groups.addGroupParticipant |
Метод добавляет участника в групповой чат | AddGroupParticipant |
groups.removeGroupParticipant |
Метод удаляет участника из группового чата | RemoveGroupParticipant |
groups.setGroupAdmin |
Метод назначает участника группового чата администратором | SetGroupAdmin |
groups.removeAdmin |
Метод лишает участника прав администрирования группового чата | RemoveAdmin |
groups.setGroupPicture |
Метод устанавливает аватар группы | SetGroupPicture |
groups.leaveGroup |
Метод производит выход пользователя текущего аккаунта из группового чата | LeaveGroup |
journals.getChatHistory |
Метод возвращает историю сообщений чата | GetChatHistory |
journals.getMessage |
Метод возвращает сообщение чата | GetMessage |
journals.lastIncomingMessages |
Метод возвращает крайние входящие сообщения аккаунта | LastIncomingMessages |
journals.lastOutgoingMessages |
Метод возвращает крайние отправленные сообщения аккаунта | LastOutgoingMessages |
journals.getChats |
Метод возвращает список чатов аккаунта | GetChats |
queues.showMessagesQueue |
Метод предназначен для получения списка сообщений, находящихся в очереди на отправку | ShowMessagesQueue |
queues.clearMessagesQueue |
Метод предназначен для очистки очереди сообщений на отправку | ClearMessagesQueue |
marking.readChat |
Метод предназначен для отметки сообщений в чате прочитанными | ReadChat |
receiving.receiveNotification |
Метод предназначен для получения одного входящего уведомления из очереди уведомлений | ReceiveNotification |
receiving.deleteNotification |
Метод предназначен для удаления входящего уведомления из очереди уведомлений | DeleteNotification |
receiving.downloadFile |
Метод предназначен для скачивания принятых и отправленных файлов | DownloadFile |
sending.sendMessage |
Метод предназначен для отправки текстового сообщения в личный или групповой чат | SendMessage |
sending.sendFileByUpload |
Метод предназначен для отправки файла, загружаемого через форму (form-data) | SendFileByUpload |
sending.sendFileByUrl |
Метод предназначен для отправки файла, загружаемого по ссылке | SendFileByUrl |
sending.uploadFile |
Метод предназначен для загрузки файла в облачное хранилище, который можно отправить методом sendFileByUrl | UploadFile |
serviceMethods.checkAccount |
Метод проверяет наличие аккаунта MAX на номере телефона | CheckAccount |
serviceMethods.getAvatar |
Метод возвращает аватар корреспондента или группового чата | GetAvatar |
serviceMethods.getContacts |
Метод предназначен для получения списка контактов текущего аккаунта | GetContacts |
serviceMethods.getContactInfo |
Метод предназначен для получения информации о контакте | GetContactInfo |
webhooks.startReceivingNotifications |
Метод предназначен для старта получения новых уведомлений | |
webhooks.stopReceivingNotifications |
Метод предназначен для остановки получения новых уведомлений | |
partner.GetInstances |
Метод предназначен для получения всех инстансов аккаунтов созданных партнёром. | GetInstances |
partner.CreateInstance |
Метод предназначен для создания инстанса от имени партнёра. | CreateInstance |
partner.DeleteInstanceAccount |
Метод предназначен для удаления инстанса аккаунта партнёра. | DeleteInstanceAccount |
https://green-api.com/v3/docs/api/.
- requests - для HTTP запросов.
Лицензировано на условиях Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) . LICENSE.