承接 wppconnect-team/wppconnect-php-client 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

wppconnect-team/wppconnect-php-client

最新稳定版本:v2.0.3

Composer 安装命令:

composer require wppconnect-team/wppconnect-php-client

包简介

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

README 文档

README

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.

统计信息

  • 总下载量: 8.31k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 48
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 47
  • Watchers: 5
  • Forks: 18
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2021-08-23