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.