Wppconnect Php Client Save

Um simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.

Project README

WPPConnect Team

Wppconnect PHP Client

Um simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.

Nossos canais online

Discord Telegram Group WhatsApp Group YouTube

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.

Open Source Agenda is not affiliated with "Wppconnect Php Client" Project. README Source: wppconnect-team/wppconnect-php-client
Stars
43
Open Issues
0
Last Commit
9 months ago
License

Open Source Agenda Badge

Open Source Agenda Rating