luannsr12 / apiwpp
用于 Api Whatsapp 的 Golang Sdk
v2.0.0
2024-05-23 21:28 UTC
README
Api Wuzapi: asternic/wuzapi
Api Evolution: evolution-api
可用功能
- 发送视频
- 发送音频
- 发送文档
- 发送图片
- 发送文本
- 检查 WhatsApp 号码
- 个人资料图片
- 个人资料详情
安装 composer
composer require luannsr12/apiwpp
每个 API 都有自己的类
针对 Evolution
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Account; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Message; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution');
针对 Wuzapi(已过时)
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Wuzapi\Account; use Apiwpp\Api\Wuzapi\Device; use Apiwpp\Api\Wuzapi\Message; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Wuzapi');
创建实例
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(); // default true - Para não debugar não chame a função, ou passe false como parametro // Criar instância $create = Device::create("NOVO_TOKEN_123", "NOME_INSTANCIA"); if($create){ echo 'Instância criada com sucesso!'; }else{ var_dump(ExceptionError::getMessage()); // Json response }
恢复二维码
需要注意的是,如果使用已连接的设备查找二维码,将返回错误。
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(); // default true - Para não debugar não chame a função, ou passe false como parametro // Setar o token Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); $connected = Device::isConnected(); // false or true if(!$connected){ // caso n esteja conectado carrega o qrcode Device::loadQr(); // após carregar o qrcode podemos recupera-lo $qrcode = Device::getQrcode(); // verifica se houve algum erro no processo if(ExceptionError::$error && $qrcode != "" && $qrcode != NULL){ // se houve erro imprimir o erro var_dump(ExceptionError::getMessage()); // Json response }else{ // Se não ocorreu erro mostra o qrcode echo '<img src="'.$qrcode.'" /> '; } }else{ // Dispositivo já está conectado echo 'Conectado!'; }
为设备定义一个 WebHook
每次收到消息时,将收到 REQUEST:POST 请求
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(); // default true - Para não debugar não chame a função, ou passe false como parametro // Setar o token Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); $setWebhook = Device::setWebhook('http://site.com'); // para Evolution use 'disabled' para desativar o webhook var_dump($setWebhook); // true or false
恢复 WebHook
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(); // default true - Para não debugar não chame a função, ou passe false como parametro // Setar o token Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); $webhook = Device::getWebhook(); var_dump($webhook); // object: ['subscribe' => 'Message', 'webhook' => 'http://site.com' ]
发送文本消息
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Message; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá enviar a mensagem Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); Message::type('text'); Message::phone('551199999999'); Message::text('Mensagem aqui'); if(Message::send()){ echo 'Mensagem enviada! <br />'; echo 'Id: ' . Message::$lastIdMessage; }else{ var_dump(ExceptionError::getMessage()); }
通过文件 URL 发送视频。
需要注意的是,仅接受 .mp4 和 .3gpp 格式的视频。
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Message; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá enviar a mensagem Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); Message::type('video'); Message::phone('551199999999'); Message::fileUrl('http://umsitequalquer.com/arquivos/video.mp4'); Message::caption('Um texto anexado ao video'); // Opcional if(Message::send()){ echo 'Mensagem enviada! <br />'; echo 'Id: ' . Message::$lastIdMessage; }else{ var_dump(ExceptionError::getMessage()); }
通过文件 URL 发送音频。
需要注意的是,使用 Wuzapi 仅接受 .ogg 格式的音频。对于 Evolution,.mp3 格式也适用。
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Message; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá enviar a mensagem Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); Message::type('audio'); Message::phone('551199999999'); Message::fileUrl('http://umsitequalquer.com/arquivos/audio.ogg'); if(Message::send()){ echo 'Mensagem enviada! <br />'; echo 'Id: ' . Message::$lastIdMessage; }else{ var_dump(ExceptionError::getMessage()); }
通过文件 URL 发送图片。
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Message; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá enviar a mensagem Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); Message::type('image'); Message::phone('551199999999'); Message::fileUrl('http://umsitequalquer.com/arquivos/imagem.png'); Message::caption('Um texto anexado a imagem'); // Opcional if(Message::send()){ echo 'Mensagem enviada! <br />'; echo 'Id: ' . Message::$lastIdMessage; }else{ var_dump(ExceptionError::getMessage()); }
通过文件 URL 发送文档。
已测试并支持以下格式的文件:zip, xls, pdf, txt, doc, xml, json, ppt, pptx。
未测试其他类型的文件。
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Error\ExceptionError; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Message; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá enviar a mensagem Device::setInstance('NOVO_TOKEN_123', 'NOME_INSTANCIA'); Message::type('document'); Message::phone('551199999999'); Message::fileUrl('http://umsitequalquer.com/arquivos/arquivo.pdf'); Message::caption('Um texto anexado a imagem'); // Opcional if(Message::send()){ echo 'Mensagem enviada! <br />'; echo 'Id: ' . Message::$lastIdMessage; }else{ var_dump(ExceptionError::getMessage()); }
检查 WhatsApp 号码是否存在
该功能还会纠正号码,无论该号码是否使用或未使用第九位数字。
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Account; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá ser usado para verificar o número // Pode ser o token admin aqui também Device::setInstance('NOVO_TOKEN_123_TESTE', 'NOME_INSTANCIA'); Account::checkPhone('551199999999'); $isWhatsapp = Account::$isWhatsapp; if($isWhatsapp){ echo 'Whatsapp válido: ' . Account::$phoneValid; }else{ echo 'Whatsapp inválido'; }
捕获 WhatsApp 账户的 '留言' 状态
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Account; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá ser usado para verificar o número // Pode ser o token admin aqui também Device::setInstance('NOVO_TOKEN_123_TESTE', 'NOME_INSTANCIA'); Account::detailsAccount('551199999999'); echo Account::$accountName; echo '<br />'; echo Account::$accountStatus;
捕获个人资料图片
个人资料图片不能是私密的。
如果个人资料图片仅对联系人可见,则在 "setInstance" 传入的设备应位于该用户的联系人列表中。
<?php require_once 'vendor/autoload.php'; use Apiwpp\Config\Api; use Apiwpp\Api\Evolution\Device; use Apiwpp\Api\Evolution\Account; // Definir configurações da API Api::setConfigs('TOKEN_ADMIN', 'http://127.0.0.1/apiwpp/', 'Evolution'); Api::debug(true); // default true - Para não debugar não chame a função, ou passe false como parametro // Define qual instancia irá ser usado para verificar o número // Pode ser o token admin aqui também Device::setInstance('NOVO_TOKEN_123_TESTE', 'NOME_INSTANCIA'); $profileImg = Account::getImageProfile('5511999999999'); echo "<img src='{$profileImg}' /> ";