{"id":15773992,"url":"https://github.com/wppconnect-team/wppconnect-php-client","last_synced_at":"2025-07-05T05:07:03.085Z","repository":{"id":43742724,"uuid":"359290283","full_name":"wppconnect-team/wppconnect-php-client","owner":"wppconnect-team","description":"Um simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.","archived":false,"fork":false,"pushed_at":"2023-08-18T18:03:31.000Z","size":6617,"stargazers_count":47,"open_issues_count":0,"forks_count":18,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-06-24T11:34:39.301Z","etag":null,"topics":["php","whatsapp","wppconnect","wppconnect-server"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wppconnect-team.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-04-19T01:11:27.000Z","updated_at":"2024-10-08T14:20:36.000Z","dependencies_parsed_at":"2024-04-16T18:23:16.673Z","dependency_job_id":"e5f35b13-16e7-413f-9f9b-3f5808cc70fe","html_url":"https://github.com/wppconnect-team/wppconnect-php-client","commit_stats":{"total_commits":48,"total_committers":3,"mean_commits":16.0,"dds":0.0625,"last_synced_commit":"8c0f2e40424c1f31ea9f82038124b749717fca1c"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/wppconnect-team/wppconnect-php-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wppconnect-team%2Fwppconnect-php-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wppconnect-team%2Fwppconnect-php-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wppconnect-team%2Fwppconnect-php-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wppconnect-team%2Fwppconnect-php-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wppconnect-team","download_url":"https://codeload.github.com/wppconnect-team/wppconnect-php-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wppconnect-team%2Fwppconnect-php-client/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263289900,"owners_count":23443473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","whatsapp","wppconnect","wppconnect-server"],"created_at":"2024-10-04T16:04:21.127Z","updated_at":"2025-07-05T05:07:03.069Z","avatar_url":"https://github.com/wppconnect-team.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WPPConnect Team\n## _Wppconnect PHP Client_\n\nUm simples cliente PHP que proporciona acesso fácil aos endpoints do WPPConnect Server.\n\n## Nossos canais online\n\n[![Discord](https://img.shields.io/discord/844351092758413353?color=blueviolet\u0026label=Discord\u0026logo=discord\u0026style=flat)](https://discord.gg/JU5JGGKGNG)\n[![Telegram Group](https://img.shields.io/badge/Telegram-Group-32AFED?logo=telegram)](https://t.me/wppconnect)\n[![WhatsApp Group](https://img.shields.io/badge/WhatsApp-Group-25D366?logo=whatsapp)](https://chat.whatsapp.com/LJaQu6ZyNvnBPNAVRbX00K)\n[![YouTube](https://img.shields.io/youtube/channel/subscribers/UCD7J9LG08PmGQrF5IS7Yv9A?label=YouTube)](https://www.youtube.com/c/wppconnect)\n\n## Requisitos\n\n* PHP 7.4 ou superior.\n* PHP Zip Extension\n\n## Instalação \n\n```\ncomposer require wppconnect-team/wppconnect-php-client\n```\n\n## Uso\n\n### Request\n\n``` php\nnamespace WPPConnect;\n\nrequire '../../vendor/autoload.php';\n\nuse WPPConnect\\Http\\Request;\nuse WPPConnect\\Helpers\\Util;\n\n$wppconnect = new Request([\n    'base_url' =\u003e 'http://localhost:8081',\n    'secret_key' =\u003e 'MYKeYPHP',\n    'session' =\u003e 'mySession',\n    'token' =\u003e null\n]);\n$util = new Util();\n ```\n \n ``` php\n# Function: Generated Token\n# /api/:session/generate-token\n$response = $wppconnect-\u003egenerateToken();\n$response = $util-\u003etoArray($response);\nif (isset($response['status']) and $response['status'] == 'success') :\n    $wppconnect-\u003eoptions['token'] = $response['token'];\nendif;\n#debug\n$util-\u003edebug($response);\n ```\n ``` php\n # Function: Start Session\n # /api/:session/start-session\n$response = $wppconnect-\u003estartSession([\n    'webhook' =\u003e null,\n    'waitQrCode' =\u003e true\n]);\n$response = $wppconnect-\u003etoArray($response);\n#debug\n$util-\u003edebug($response);\n ```\n ``` php\n# Function: Check Connection Session\n# /api/:session/check-connection-session\n$response = $wppconnect-\u003echeckConnectionSession([);\n$response = $wppconnect-\u003etoArray($response);\n#debug\n$util-\u003edebug($response);\n\n ```\n ``` php\n# Function: Send Message\n# /api/:session/send-message    \n$response = $wppconnect-\u003esendMessage([\n    'phone' =\u003e '5500000000000',\n    'message' =\u003e 'Opa, funciona mesmo!',\n    'isGroup' =\u003e false\n]);\n$response = $wppconnect-\u003etoArray($response);\n#debug\n$util-\u003edebug($response);\n\n ```\n ``` php\n# Function: Send File Base64\n# /api/:session/send-file-base64 \n$response = $wppconnect-\u003esendFileBase64([\n    'phone' =\u003e '5500000000000',\n    'filename' =\u003e 'Xpto',\n    'base64' =\u003e $wppconnect-\u003efileToBase64('xpto.jpg'),\n    'isGroup' =\u003e false\n]);\n$response = $wppconnect-\u003etoArray($response);\n#debug\n$util-\u003edebug($response);\n ```\n \n``` php\n# Function: Send Link Preview\n# /api/:session/send-link-preview\n$response = $wppconnect-\u003esendLinkPreview([\n    'phone' =\u003e '5500000000000',\n    'url' =\u003e 'https://github.com/wppconnect-team',\n    'caption' =\u003e 'WppConnectTeam',\n    'isGroup' =\u003e false\n]);\n$response = $wppconnect-\u003etoArray($response);\n#debug\n$util-\u003edebug($response);\n ```\n ``` php\n# Function: Send Location\n# /api/:session/send-location \n$response = $wppconnect-\u003esendLocation([\n    'phone' =\u003e '5500000000000',\n    'lat' =\u003e '-23.5489',\n    'lng' =\u003e '-46.6388',\n    'title' =\u003e 'Cidade de São Paulo'\n    'isGroup' =\u003e false\n]);\n$response = $wppconnect-\u003etoArray($response);\n#debug\n$util-\u003edebug($response);\n ```\n\n### Response (Webhook)\nExemplo de webhook para registrar/obter a solicitação/respostas do webhook WPPConnect.\n\n``` php\nnamespace WPPConnect;\n\nuse WPPConnect\\Http\\Response;\nuse WPPConnect\\Helpers\\Util;\n\nrequire '../../vendor/autoload.php';\n\n$config = require_once('../config/config.php');\n$webhook = new Response($config);\n$util = new Util();\n```\n``` php\n# QRCode\nif ($webhook-\u003egetEvent() == 'qrcode') :\n    'File: ' .\n        $util-\u003ebase64ToFile($webhook-\u003egetQrcode(), 'image/png', $webhook-\u003egetFilesFolder());\n    die;\nendif;\n```\n``` php\n# Message\nif ($webhook-\u003egetEvent() == 'onmessage' and $webhook-\u003egetType() == 'chat') :\n    echo '\n        Content: ' . $webhook-\u003egetContent() . ' \n        Date: ' . $webhook-\u003egetDate() . ' \n        From: ' . $webhook-\u003egetFrom() . '\n        To: ' . $webhook-\u003egetTo();\n    die;\nendif;\n```\n``` php\n# File: Audio / Imagem / Arquivo / Video / Sticker\nif (\n    $webhook-\u003egetEvent() == 'onmessage' and\n    (\n        $webhook-\u003egetType() == 'ptt' or\n        $webhook-\u003egetType() == 'image' or\n        $webhook-\u003egetType() == 'document' or\n        $webhook-\u003egetType() == 'video' or\n        $webhook-\u003egetType() == 'sticker'\n\n    )\n) :\n    echo '\n        File: ' .\n        $util-\u003ebase64ToFile(\n            $webhook-\u003egetBody(),\n            $webhook-\u003egetMimetype(),\n            $webhook-\u003egetFilesFolder()\n        )        . ' \n        Date: ' . $webhook-\u003egetDate() . ' \n        From: ' . $webhook-\u003egetFrom() . '\n        To: ' . $webhook-\u003egetTo();\n    die;\nendif;\n```\n## Funções para uso do Banco de Dados (SQLite, MySQL e Postgres)\n``` php\nnamespace WPPConnect;\n\nuse WPPConnect\\Db\\Adapter;\nuse WPPConnect\\Helpers\\Util;\n\nrequire '../../vendor/autoload.php';\n\n$config = require_once('../config/config.php');\n\n#SQLite\n#$adapter = new Adapter($config, 'sqlite');\n\n#Postgres\n#$adapter = new Adapter($config, 'postgres');\n\n#MySQL - Default\n$adapter = new Adapter($config);\n$util = new Util() ;\n```\n``` php\n#Connect\n$adapter-\u003econnect();\n\n#Disconnect\n$adapter-\u003edisconnect();\n```\n\n``` php\n#Create Table\n$adapter-\u003ecreateTable('mensagem', [\n    'id' =\u003e 'serial PRIMARY KEY', // use INTEGER instead of SERIAL on sqlite to get auto ids\n    'session' =\u003e 'varchar(255)',\n    'content' =\u003e 'varchar(255)'\n]);\n\n#Insert\n$adapter-\u003einsert('mensagem', ['session' =\u003e 'MySessionName', 'content' =\u003e 'MyContent']);\n\n#Update\n$adapter-\u003eupdate('mensagem', ['content' =\u003e 'MyContent_Edit'], ['id' =\u003e 1]);\n\n#Delete\n$adapter-\u003edelete('mensagem', ['id' =\u003e 1]);\n\n#Truncate Table\n$adapter-\u003etruncateTable('mensagem');\n\n#Drop Table\n$adapter-\u003edropTable('mensagem');\n\n#Get All Tables\n$adapter-\u003egetAllTables();\n\n#Fetch\n$adapter-\u003efetchAll('mensagem', ['id', 'content'], ['id' =\u003e 1], [], [], ['id'], 'ASC', 3);\n$adapter-\u003efetchAll('mensagem');\n$adapter-\u003efetchRow('mensagem', [], [], [], [], ['id'], 'ASC');\n\n#Exec / Query\n$adapter-\u003eexec('SELECT * FROM mensagem WHERE id = 1');\n$adapter-\u003equery('SELECT * FROM mensagem WHERE id = ?', 1);\n\n#Others\n$adapter-\u003ecount('mensagem');\n$adapter-\u003egetColumns('mensagem');\n$adapter-\u003ehasTable('mensagem');\n$adapter-\u003ehasColumn('mensagem', 'id');\n$adapter-\u003egetColumnDatatype('mensagem', 'id');\n$adapter-\u003egetPrimaryKey('mensagem');\n\n#Foreign Keys\n$adapter-\u003egetForeignKeys('session');\n$adapter-\u003egetForeignTablesOut('session');\n$adapter-\u003egetForeignTablesIn('mensagem');\n$adapter-\u003eisForeignKey('session', 'id');\n\n#Debug Query\n$adapter-\u003edebugQuery(\"SELECT * FROM mensagem WHERE id = ? or id = ?\", [1, 2]);\n```\n## Funções/Métodos Suportados (até este momento) \n\nEste cliente PHP ainda está em desenvolvimento. \nVeja [aqui](https://github.com/wppconnect-team/wppconnect-server/blob/main/src/routes/index.js) todos os endpoints do WPPConnect Server. \n\n### Token\n- generateToken([:session,:secret_key]) \n\n### Session\n- startAll([:secret_key,:token])\n- showAllSessions([:session,,:token]);\n- startSession([:session,:token,:webhook,:waitQrCode]);\n- closeSession([:session,:token]);\n- logoutSession([:session,:token]);\n- checkConnectionSession([:session,:token]);\n- statusSession([:session,:token]);\n- qrcodeSession([:session,:token]);\n\n### Mensagem\n- sendMessage([:session,:token,:phone,:message,:isGroup]);\n- sendReply([:session,:token,:phone,:message,:messageId,:isGroup]);\n- sendFileBase64([:session,:token,:phone,:filename:base64:isGroup]);\n- sendStatus([:session,:token,:message,:isGroup]);\n- sendLinkPreview([:session,:token,:phone,:url,:caption,:isGroup]);\n- sendLocation([:session,:token,:phone,:lat,:lng,:title,:isGroup]);\n- sendMentioned([:session,:token,:phone,:message,:mentioned,:isGroup]);\n- sendButtons([:session,:token,:phone,:message,:title,:footer,:buttons]);\n\n### Grupo\n- createGroup([:session,:token,:participants[:phone,:phone,...],:name]);\n- leaveGroup([:session,:token,:groupId]);\n- joinCode([:session,:token,:inviteCode]);\n- groupMembers([:session,:token,:groupId]);\n- addParticipantGroup([:session,:token,:groupId,:phone]);\n- removeParticipantGroup([:session,:token,:groupId,:phone,]);\n- promoteParticipantGroup([:session,:token,:groupId,:phone]);\n- demoteParticipantGroup([:session,:token,:groupId,:phone]);\n- groupAdmins([:session,:token,:groupId]);\n- groupInviteLink([:session,:token,:groupId]);\n- groupRevokeLink([:session,:token,:groupId]);\n- allGroups([:session,:token]);\n- groupInfoFromInviteLink([:session,:token,:inviteCode]);\n- groupMembersIds([:session,:token,:groupId]);\n- groupDescription([:session,:token,:groupId,:description]);\n- groupProperty([:session,:token,:groupId,:property,:value]);\n- groupSubject([:session,:token,:groupId,:title]);\n- messagesAdminsOnly([:session,:token,:groupId,:value]);\n\n### Chat\n- archiveChat([:session,:token,:phone,:isGroup]);\n- clearChat([:session,:token,:phone,:isGroup]);\n- deleteChat([:session,:token,:phone]);\n- deleteMessage([:session,:token,:phone,:messageId]);\n- forwardMessages([:session,:token,:phone,:messageId]);\n- allChats([:session,:token]);\n- allChatsWithMessages([:session,:token]);\n- allMessagesInChat([:session,:token,:phone]);\n- allNewMessages([:session,:token,:phone]);\n- unreadMessages([:session,:token]);\n- allUnreadMessages([:session,:token]);\n- chatById([:session,:token,:phone]);\n- chatIsOnline([:session,:token,:phone]);\n- lastSeen([:session,:token,:phone]);\n- listMutes([:session,:token,:type]);\n- loadMessagesInChat([:session,:token,:phone]);\n- markUnseen([:session,:token,:phone]);\n- pinChat([:session,:token,:phone,:state,:isGroup]);\n- contactVcard([:session,:token,:phone,:contactsId]);\n- sendMute([:session,:token,:phone,:time,:type]);\n- sendSeen([:session,:token,:phone]);\n- chatState([:session,:token,:phone,:chatstate]);\n- typing([:session,:token,:phone,:value,:isGroup]);\n- starMessage([:session,:token,:messageId,:star]);\n- getMediaByMessage([:session,:token,:messageId]);\n\n### Contatos\n- checkNumberStatus([:session,:token,:phone]);\n- allContacts([:session,:token]);\n- contact([:session,:token,:phone]);\n- profile([:session,:token,:phone,]);\n- profilePic([:session,:token,:phone]);\n- profileStatus([:session,:token,:phone]);\n- blockContact([:session,:token,:phone]);\n- unblockContact([:session,:token,:phone]);\n- blocklist([:session,:token]);\n- setProfileStatus([:session,:token,:status]);\n- changeUsername([:session,:token,:name]);\n\n### Device\n- getBatteryLevel([:session,:token]);\n- hostDevice([:session,:token]);\n\n### Outros\n- allBroadcastList([:session,:token]);\n- subscribePresence([:session,:token,:isGroup,:all]);\n- killServiceWorkier([:session,:token]);\n- restartService([:session,:token]);\n\n## Tutórial de Uso com Docker\n\nAcesse o tutorial de como utilizar o PHP Client com Docker no nosso Canal do Youtube: https://www.youtube.com/watch?v=o_TBIyxFbNI\n\n## Postman\n\nAcesse o [Postman Collection do WPPConnect](https://documenter.getpostman.com/view/9139457/TzshF4jQ) com todos os endpoints.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwppconnect-team%2Fwppconnect-php-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwppconnect-team%2Fwppconnect-php-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwppconnect-team%2Fwppconnect-php-client/lists"}