Um simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.
- PHP 7.4 ou superior.
- PHP Zip Extension
composer require wppconnect-team/wppconnect-php-client
namespace WPPConnect;
require '../../vendor/autoload.php';
use WPPConnect\Http\Request;
use WPPConnect\Helpers\Util;
$wppconnect = new Request([
'base_url' => 'http://localhost:8081',
'secret_key' => 'MYKeYPHP',
'session' => 'mySession',
'token' => null
]);
$util = new Util();
# Function: Generated Token
# /api/:session/generate-token
$response = $wppconnect->generateToken();
$response = $util->toArray($response);
if (isset($response['status']) and $response['status'] == 'success') :
$wppconnect->options['token'] = $response['token'];
endif;
#debug
$util->debug($response);
# Function: Start Session
# /api/:session/start-session
$response = $wppconnect->startSession([
'webhook' => null,
'waitQrCode' => true
]);
$response = $wppconnect->toArray($response);
#debug
$util->debug($response);
# Function: Check Connection Session
# /api/:session/check-connection-session
$response = $wppconnect->checkConnectionSession([);
$response = $wppconnect->toArray($response);
#debug
$util->debug($response);
# Function: Send Message
# /api/:session/send-message
$response = $wppconnect->sendMessage([
'phone' => '5500000000000',
'message' => 'Opa, funciona mesmo!',
'isGroup' => false
]);
$response = $wppconnect->toArray($response);
#debug
$util->debug($response);
# Function: Send File Base64
# /api/:session/send-file-base64
$response = $wppconnect->sendFileBase64([
'phone' => '5500000000000',
'filename' => 'Xpto',
'base64' => $wppconnect->fileToBase64('xpto.jpg'),
'isGroup' => false
]);
$response = $wppconnect->toArray($response);
#debug
$util->debug($response);
# Function: Send Link Preview
# /api/:session/send-link-preview
$response = $wppconnect->sendLinkPreview([
'phone' => '5500000000000',
'url' => 'https://github.com/wppconnect-team',
'caption' => 'WppConnectTeam',
'isGroup' => false
]);
$response = $wppconnect->toArray($response);
#debug
$util->debug($response);
# Function: Send Location
# /api/:session/send-location
$response = $wppconnect->sendLocation([
'phone' => '5500000000000',
'lat' => '-23.5489',
'lng' => '-46.6388',
'title' => 'Cidade de São Paulo'
'isGroup' => false
]);
$response = $wppconnect->toArray($response);
#debug
$util->debug($response);
Exemplo de webhook para registrar/obter a solicitação/respostas do webhook WPPConnect.
namespace WPPConnect;
use WPPConnect\Http\Response;
use WPPConnect\Helpers\Util;
require '../../vendor/autoload.php';
$config = require_once('../config/config.php');
$webhook = new Response($config);
$util = new Util();
# QRCode
if ($webhook->getEvent() == 'qrcode') :
'File: ' .
$util->base64ToFile($webhook->getQrcode(), 'image/png', $webhook->getFilesFolder());
die;
endif;
# Message
if ($webhook->getEvent() == 'onmessage' and $webhook->getType() == 'chat') :
echo '
Content: ' . $webhook->getContent() . '
Date: ' . $webhook->getDate() . '
From: ' . $webhook->getFrom() . '
To: ' . $webhook->getTo();
die;
endif;
# File: Audio / Imagem / Arquivo / Video / Sticker
if (
$webhook->getEvent() == 'onmessage' and
(
$webhook->getType() == 'ptt' or
$webhook->getType() == 'image' or
$webhook->getType() == 'document' or
$webhook->getType() == 'video' or
$webhook->getType() == 'sticker'
)
) :
echo '
File: ' .
$util->base64ToFile(
$webhook->getBody(),
$webhook->getMimetype(),
$webhook->getFilesFolder()
) . '
Date: ' . $webhook->getDate() . '
From: ' . $webhook->getFrom() . '
To: ' . $webhook->getTo();
die;
endif;
namespace WPPConnect;
use WPPConnect\Db\Adapter;
use WPPConnect\Helpers\Util;
require '../../vendor/autoload.php';
$config = require_once('../config/config.php');
#SQLite
#$adapter = new Adapter($config, 'sqlite');
#Postgres
#$adapter = new Adapter($config, 'postgres');
#MySQL - Default
$adapter = new Adapter($config);
$util = new Util() ;
#Connect
$adapter->connect();
#Disconnect
$adapter->disconnect();
#Create Table
$adapter->createTable('mensagem', [
'id' => 'serial PRIMARY KEY', // use INTEGER instead of SERIAL on sqlite to get auto ids
'session' => 'varchar(255)',
'content' => 'varchar(255)'
]);
#Insert
$adapter->insert('mensagem', ['session' => 'MySessionName', 'content' => 'MyContent']);
#Update
$adapter->update('mensagem', ['content' => 'MyContent_Edit'], ['id' => 1]);
#Delete
$adapter->delete('mensagem', ['id' => 1]);
#Truncate Table
$adapter->truncateTable('mensagem');
#Drop Table
$adapter->dropTable('mensagem');
#Get All Tables
$adapter->getAllTables();
#Fetch
$adapter->fetchAll('mensagem', ['id', 'content'], ['id' => 1], [], [], ['id'], 'ASC', 3);
$adapter->fetchAll('mensagem');
$adapter->fetchRow('mensagem', [], [], [], [], ['id'], 'ASC');
#Exec / Query
$adapter->exec('SELECT * FROM mensagem WHERE id = 1');
$adapter->query('SELECT * FROM mensagem WHERE id = ?', 1);
#Others
$adapter->count('mensagem');
$adapter->getColumns('mensagem');
$adapter->hasTable('mensagem');
$adapter->hasColumn('mensagem', 'id');
$adapter->getColumnDatatype('mensagem', 'id');
$adapter->getPrimaryKey('mensagem');
#Foreign Keys
$adapter->getForeignKeys('session');
$adapter->getForeignTablesOut('session');
$adapter->getForeignTablesIn('mensagem');
$adapter->isForeignKey('session', 'id');
#Debug Query
$adapter->debugQuery("SELECT * FROM mensagem WHERE id = ? or id = ?", [1, 2]);
Este cliente PHP ainda está em desenvolvimento. Veja aqui todos os endpoints do WPPConnect Server.
- generateToken([:session,:secret_key])
- startAll([:secret_key,:token])
- showAllSessions([:session,,:token]);
- startSession([:session,:token,:webhook,:waitQrCode]);
- closeSession([:session,:token]);
- logoutSession([:session,:token]);
- checkConnectionSession([:session,:token]);
- statusSession([:session,:token]);
- qrcodeSession([:session,:token]);
- sendMessage([:session,:token,:phone,:message,:isGroup]);
- sendReply([:session,:token,:phone,:message,:messageId,:isGroup]);
- sendFileBase64([:session,:token,:phone,:filename:base64:isGroup]);
- sendStatus([:session,:token,:message,:isGroup]);
- sendLinkPreview([:session,:token,:phone,:url,:caption,:isGroup]);
- sendLocation([:session,:token,:phone,:lat,:lng,:title,:isGroup]);
- sendMentioned([:session,:token,:phone,:message,:mentioned,:isGroup]);
- sendButtons([:session,:token,:phone,:message,:title,:footer,:buttons]);
- createGroup([:session,:token,:participants[:phone,:phone,...],:name]);
- leaveGroup([:session,:token,:groupId]);
- joinCode([:session,:token,:inviteCode]);
- groupMembers([:session,:token,:groupId]);
- addParticipantGroup([:session,:token,:groupId,:phone]);
- removeParticipantGroup([:session,:token,:groupId,:phone,]);
- promoteParticipantGroup([:session,:token,:groupId,:phone]);
- demoteParticipantGroup([:session,:token,:groupId,:phone]);
- groupAdmins([:session,:token,:groupId]);
- groupInviteLink([:session,:token,:groupId]);
- groupRevokeLink([:session,:token,:groupId]);
- allGroups([:session,:token]);
- groupInfoFromInviteLink([:session,:token,:inviteCode]);
- groupMembersIds([:session,:token,:groupId]);
- groupDescription([:session,:token,:groupId,:description]);
- groupProperty([:session,:token,:groupId,:property,:value]);
- groupSubject([:session,:token,:groupId,:title]);
- messagesAdminsOnly([:session,:token,:groupId,:value]);
- archiveChat([:session,:token,:phone,:isGroup]);
- clearChat([:session,:token,:phone,:isGroup]);
- deleteChat([:session,:token,:phone]);
- deleteMessage([:session,:token,:phone,:messageId]);
- forwardMessages([:session,:token,:phone,:messageId]);
- allChats([:session,:token]);
- allChatsWithMessages([:session,:token]);
- allMessagesInChat([:session,:token,:phone]);
- allNewMessages([:session,:token,:phone]);
- unreadMessages([:session,:token]);
- allUnreadMessages([:session,:token]);
- chatById([:session,:token,:phone]);
- chatIsOnline([:session,:token,:phone]);
- lastSeen([:session,:token,:phone]);
- listMutes([:session,:token,:type]);
- loadMessagesInChat([:session,:token,:phone]);
- markUnseen([:session,:token,:phone]);
- pinChat([:session,:token,:phone,:state,:isGroup]);
- contactVcard([:session,:token,:phone,:contactsId]);
- sendMute([:session,:token,:phone,:time,:type]);
- sendSeen([:session,:token,:phone]);
- chatState([:session,:token,:phone,:chatstate]);
- typing([:session,:token,:phone,:value,:isGroup]);
- starMessage([:session,:token,:messageId,:star]);
- getMediaByMessage([:session,:token,:messageId]);
- checkNumberStatus([:session,:token,:phone]);
- allContacts([:session,:token]);
- contact([:session,:token,:phone]);
- profile([:session,:token,:phone,]);
- profilePic([:session,:token,:phone]);
- profileStatus([:session,:token,:phone]);
- blockContact([:session,:token,:phone]);
- unblockContact([:session,:token,:phone]);
- blocklist([:session,:token]);
- setProfileStatus([:session,:token,:status]);
- changeUsername([:session,:token,:name]);
- getBatteryLevel([:session,:token]);
- hostDevice([:session,:token]);
- allBroadcastList([:session,:token]);
- subscribePresence([:session,:token,:isGroup,:all]);
- killServiceWorkier([:session,:token]);
- restartService([:session,:token]);
Acesse o tutorial de como utilizar o PHP Client com Docker no nosso Canal do Youtube: https://www.youtube.com/watch?v=o_TBIyxFbNI
Acesse o Postman Collection do WPPConnect com todos os endpoints.