Download the PHP package vntrungld/zalo-bot-php-sdk without Composer
On this page you can find all versions of the php package vntrungld/zalo-bot-php-sdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package zalo-bot-php-sdk
Zalo Bot PHP SDK
A typed PHP client for the Zalo Bot Platform API.
- Full coverage of the documented endpoints (
getMe,getUpdates, webhooks, and allsend*methods). - Typed model objects for every response — full IDE autocompletion.
- A webhook helper that verifies the secret token and parses payloads into typed updates.
- Built on Guzzle; PHP 8.1+.
Installation
Quick start
The bot token is issued when you create a bot — see Create a bot.
Sending messages
Receiving updates
Long polling (development)
getUpdatesdoes not work while a webhook is registered.
Webhooks (production)
Register your endpoint once:
Then handle incoming deliveries. WebhookHandler verifies the
X-Bot-Api-Secret-Token header (constant-time) and parses the body:
Other webhook helpers: parse($rawBody) (parse without verifying) and
verifySignature($headerValue) (verify only).
Error handling
| Exception | Raised when |
|---|---|
ZaloBot\Exception\ApiException |
The API returns {"ok": false}. Exposes getErrorCode() and the description via getMessage(). |
ZaloBot\Exception\NetworkException |
A transport-level failure (connection, TLS, timeout). |
ZaloBot\Exception\WebhookException |
An incoming webhook fails verification or parsing. |
All three extend ZaloBot\Exception\ZaloBotException.
See the error code reference.
API reference
| Method | Returns |
|---|---|
getMe() |
Model\BotInfo |
getUpdates(int $timeout = 30) |
list<Model\Update> |
setWebhook(string $url, string $secretToken) |
Model\WebhookInfo |
deleteWebhook() |
Model\WebhookInfo |
getWebhookInfo() |
Model\WebhookInfo |
sendMessage(string $chatId, string $text, ?ParseMode $parseMode = null, ?array $textStyles = null) |
Model\SentMessage |
sendPhoto(string $chatId, string $photo, ?string $caption = null) |
Model\SentMessage |
sendSticker(string $chatId, string $sticker) |
Model\SentMessage |
sendVoice(string $chatId, string $voiceUrl) |
Model\SentMessage |
sendChatAction(string $chatId, ChatAction $action) |
bool |
Configuration
You can inject a preconfigured Guzzle client (e.g. to set proxies, timeouts, or middleware) or override the base URL:
Examples
Runnable scripts live in examples/:
send_message.php— send text, a photo, and a typing indicator.long_polling.php— a minimal long-polling echo bot.webhook.php— a standalone HTTPS webhook endpoint.
Development
License
MIT