wppconnect-team / wppconnect-php-client
Um simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.
Installs: 3 762
Dependents: 0
Suggesters: 0
Security: 0
Stars: 47
Watchers: 6
Forks: 18
Open Issues: 0
Type:libr
Requires
- php: >=7.3
- squizlabs/php_codesniffer: 3.6.0
README
Wppconnect PHP Client
Um simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.
Nossos canais online
Requisitos
- PHP 7.4 ou superior.
- PHP Zip Extension
Instalação
composer require wppconnect-team/wppconnect-php-client
Uso
Request
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);
Response (Webhook)
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;
Funções para uso do Banco de Dados (SQLite, MySQL e Postgres)
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]);
Funções/Métodos Suportados (até este momento)
Este cliente PHP ainda está em desenvolvimento. Veja aqui todos os endpoints do WPPConnect Server.
Token
- generateToken([:session,:secret_key])
Session
- 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]);
Mensagem
- 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]);
Grupo
- 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]);
Chat
- 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]);
Contatos
- 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]);
Device
- getBatteryLevel([:session,:token]);
- hostDevice([:session,:token]);
Outros
- allBroadcastList([:session,:token]);
- subscribePresence([:session,:token,:isGroup,:all]);
- killServiceWorkier([:session,:token]);
- restartService([:session,:token]);
Tutórial de Uso com Docker
Acesse o tutorial de como utilizar o PHP Client com Docker no nosso Canal do Youtube: https://www.youtube.com/watch?v=o_TBIyxFbNI
Postman
Acesse o Postman Collection do WPPConnect com todos os endpoints.