Skip to content

Latest commit

 

History

History
184 lines (141 loc) · 22.8 KB

README_RUS.md

File metadata and controls

184 lines (141 loc) · 22.8 KB

whatsapp-api-client-php

Total Downloads Downloads per month License

PHP библиотека для интеграции с мессенджером WhatsApp через API сервиса green-api.com. Чтобы воспользоваться библиотекой, нужно получить регистрационный токен и id аккаунта в личном кабинете. Есть бесплатный тариф аккаунта разработчика.

API

Документация к REST API находится по ссылке. Библиотека является оберткой к REST API, поэтому документация по ссылке выше применима и к самой библиотеке.

Установка

Через Composer:

composer require green-api/whatsapp-api-client-php

Import

require './vendor/autoload.php';

Авторизация

Чтобы отправить сообщение или выполнить другой метод Green-API, аккаунт WhatsApp в приложении телефона должен быть в авторизованном состоянии. Для авторизации аккаунта перейдите в личный кабинет и сканируйте QR-код с использованием приложения WhatsApp.

Запуск index.php

php -S localhost:8080

Примеры

Как инициализировать объект

$greenApi = new GreenApiClient( ID_INSTANCE, API_TOKEN_INSTANCE );

Отправка текстового сообщения на номер WhatsApp

$result = $greenApi->sending->sendMessage('[email protected]', 'Message text');

Ссылка на пример: sendTextMessage.php

Обратите внимание, что ключи можно получать из переменных среды:

<?php
require './vendor/autoload.php';

define( "ID_INSTANCE", getenv("ID_INSTANCE" ));
define( "API_TOKEN_INSTANCE", getenv("API_TOKEN_INSTANCE") );

Отправка картинки по URL

$result = $greenApi->sending->sendFileByUrl(
        '[email protected]', 'https://www.google.ru/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png',
        'googlelogo_color_272x92dp.png', 'Google logo');

Ссылка на пример: sendPictureByLink.php

Отправка картинки загрузкой с диска

result = greenAPI.sending.sendFileByUpload('[email protected]', 
        'C:\Games\PicFromDisk.png', 
        'PicFromDisk.png', 'Picture from disk')

Ссылка на пример: sendPictureByUpload.php

Создание группы и отправка сообщения в эту группу

$chatIds = [
	'[email protected]'
];
$resultCreate = $greenApi->groups->createGroup('GroupName', $chatIds );

if ($resultCreate->code == 200)
	$resultSend = $greenApi->sending->sendMessage($resultCreate->data->chatId, 
	    'Message text');

ВАЖНО: Если попытаться создать группу с несуществующим номером WhatsApp может заблокировать номер отправителя. Номер в примере не существует.

Ссылка на пример: createGroupAndSendMessage.php

Получение входящих сообщений через HTTP API

Общая концепция получения данных в Green API описана здесь Для старта получения сообщений через HTTP API требуется выполнить метод библиотеки:

greenAPI.webhooks.startReceivingNotifications(onEvent)

onEvent - ваш метод, который должен содержать параметры:

Параметр Описание
typeWebhook тип полученного сообщения (строка)
body тело сообщения (json)

Типы и форматы тел сообщений здесь

Этот метод будет вызываться при получении входящего сообщения. Далее обрабатываете сообщения согласно бизнес-логике вашей системы.

Список примеров

Описание Модуль
Пример отправки текста sendTextMessage.php
Пример отправки картинки по URL sendPictureByLink.php
Пример отправки картинки загрузкой с диска sendPictureByUpload.php
Пример создание группы и отправка сообщения в группу createGroupAndSendMessage.php
Пример получения входящих уведомлений receiveNotification.php

Полный список методов библиотеки

Метод API Описание Documentation link
account.getSettings Метод предназначен для получения текущих настроек аккаунта GetSettings
account.setSettings Метод предназначен для установки настроек аккаунта SetSettings
account.getStateInstance Метод предназначен для получения состояния аккаунта GetStateInstance
account.getStatusInstance Метод предназначен для получения состояния сокета соединения инстанса аккаунта с WhatsApp GetStatusInstance
account.reboot Метод предназначен для перезапуска аккаунта Reboot
account.logout Метод предназначен для разлогинивания аккаунта Logout
account.qr Метод предназначен для получения QR-кода QR
account.setProfilePicture Метод предназначен для установки аватара аккаунта SetProfilePicture
device.getDeviceInfo Метод предназначен для получения информации об устройстве (телефоне), на котором запущено приложение WhatsApp Business GetDeviceInfo
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.lastIncomingMessages Метод возвращает крайние входящие сообщения аккаунта LastIncomingMessages
journals.lastOutgoingMessages Метод возвращает крайние отправленные сообщения аккаунта LastOutgoingMessages
queues.showMessagesQueue Метод предназначен для получения списка сообщений, находящихся в очереди на отправку ShowMessagesQueue
queues.clearMessagesQueue Метод предназначен для очистки очереди сообщений на отправку ClearMessagesQueue
marking.readChat Метод предназначен для отметки сообщений в чате прочитанными ReadChat
receiving.receiveNotification Метод предназначен для получения одного входящего уведомления из очереди уведомлений ReceiveNotification
receiving.deleteNotification Метод предназначен для удаления входящего уведомления из очереди уведомлений DeleteNotification
receiving.downloadFile Метод предназначен для скачивания принятых и отправленных файлов DownloadFile
sending.sendMessage Метод предназначен для отправки текстового сообщения в личный или групповой чат SendMessage
sending.sendButtons Метод предназначен для отправки сообщения с кнопками в личный или групповой чат SendButtons
sending.sendTemplateButtons Метод предназначен для отправки сообщения с интерактивными кнопками из перечня шаблонов в личный или групповой чат SendTemplateButtons
sending.sendListMessage Метод предназначен для отправки сообщения с кнопкой выбора из списка значений в личный или групповой чат SendListMessage
sending.sendFileByUpload Метод предназначен для отправки файла, загружаемого через форму (form-data) SendFileByUpload
sending.sendFileByUrl Метод предназначен для отправки файла, загружаемого по ссылке SendFileByUrl
sending.sendLocation Метод предназначен для отправки сообщения геолокации SendLocation
sending.sendContact Метод предназначен для отправки сообщения с контактом SendContact
sending.sendLink Метод предназначен для отправки сообщения со ссылкой, по которой будут добавлены превью изображения, заголовок и описание SendLink
sending.forwardMessages Метод предназначен для пересылки сообщений в личный или групповой чат ForwardMessages
serviceMethods.checkWhatsapp Метод проверяет наличие аккаунта WhatsApp на номере телефона CheckWhatsapp
serviceMethods.getAvatar Метод возвращает аватар корреспондента или группового чата GetAvatar
serviceMethods.getContacts Метод предназначен для получения списка контактов текущего аккаунта GetContacts
serviceMethods.getContactInfo Метод предназначен для получения информации о контакте GetContactInfo
serviceMethods.deleteMessage Метод удаляет сообщение из чата DeleteMessage
serviceMethods.archiveChat Метод архивирует чат ArchiveChat
serviceMethods.unarchiveChat Метод разархивирует чат UnarchiveChat
serviceMethods.setDisappearingChat Метод предназначен для изменения настроек исчезающих сообщений в чатах SetDisappearingChat
webhooks.startReceivingNotifications Метод предназначен для старта получения новых уведомлений
webhooks.stopReceivingNotifications Метод предназначен для остановки получения новых уведомлений

Документация по методам сервиса

https://green-api.com/docs/api/

Лицензия

Лицензировано на условиях MIT. Смотрите файл LICENSE