Перейти к содержимому
ChatVendor ChatVendor

Messenger API

Всё, что панель умеет с подключённым аккаунтом Telegram, WhatsApp или Instagram, — через REST: один ключ, один формат ответа, по разделам.

SDK и примеры кода

PHP SDK, плагин WordPress и готовые примеры на PHP, Node.js и Python.

Библиотеки

Есть PHP SDK (Composer) и плагин WordPress; установка и примеры — в разделе «Интеграции». Ни то, ни другое не обязательно — всё это обычный HTTP.

composer require chatvendor/sdk

$cv = new ChatVendor\Client('cv_live_xxxxxxxxxxxx');
$cv->sms()->send('+998901234567', 'Your code is 483921', idempotencyKey: 'order-1234');
$cv->chat(1)->send('@username', 'Salom!');          // Telegram channel 1
$cv->chat('wa_12')->sendTemplate('998901234567', 'hello_world', 'en_US');

Отправить SMS

PHP

$response = $client->post('https://chatvendor.net/api/v1/messages', [
    'headers' => ['Authorization' => 'Bearer ' . $apiKey, 'Idempotency-Key' => 'order-' . $orderId],
    'json' => ['to' => '+998901234567', 'message' => 'Your order is ready'],
]);

Node.js

const res = await fetch('https://chatvendor.net/api/v1/messages', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.CV_API_KEY}`, 'Content-Type': 'application/json', 'Idempotency-Key': `order-${orderId}` },
  body: JSON.stringify({ to: '+998901234567', message: 'Your order is ready' }),
});

Python

requests.post(
    "https://chatvendor.net/api/v1/messages",
    headers={"Authorization": f"Bearer {api_key}", "Idempotency-Key": f"order-{order_id}"},
    json={"to": "+998901234567", "message": "Your order is ready"},
)

Отправить сообщение в Telegram и прочитать ответ

# Node.js
const h = { Authorization: `Bearer ${process.env.CV_API_KEY}`, 'Content-Type': 'application/json' };
await fetch('https://chatvendor.net/api/v1/channels/1/dialogs/@username/messages', { method: 'POST', headers: h, body: JSON.stringify({ text: 'Salom!' }) });
const { data } = await (await fetch('https://chatvendor.net/api/v1/channels/1/dialogs/@username/messages?limit=5', { headers: h })).json();

Для входящих сообщений подпишите вебхук на chat.message вместо опроса.