В Gratio нет очереди исходящих: sendMessage и другие методы отправки отвечают, когда площадка уже приняла сообщение. Ответ 200 с idMessage — сообщение отправлено, отказ — ошибкой с причиной в code.
Методы очереди исходящих оставлены, чтобы код, написанный под Green API, работал без правок. Они всегда отвечают «очередь пуста».
| Метод | Запрос | Ответ |
|---|---|---|
showMessagesQueue |
GET /waInstance{idInstance}/showMessagesQueue/{apiTokenInstance} |
[] |
getMessagesCount |
GET /waInstance{idInstance}/getMessagesCount/{apiTokenInstance} |
{"count": 0} |
clearMessagesQueue |
GET /waInstance{idInstance}/clearMessagesQueue/{apiTokenInstance} |
{"isCleared": true} |
Пример запроса
Сколько сообщений ждёт отправки:
curl
curl "$GRATIO_URL/waInstance$GRATIO_ID/getMessagesCount/$GRATIO_TOKEN"
Python
import os
import requests
BASE = f"{os.environ['GRATIO_URL']}/waInstance{os.environ['GRATIO_ID']}"
TOKEN = os.environ["GRATIO_TOKEN"]
url = f"{BASE}/getMessagesCount/{TOKEN}"
response = requests.get(url, timeout=60)
print(response.status_code, response.json())
Node.js
const { GRATIO_URL, GRATIO_ID, GRATIO_TOKEN } = process.env;
const base = `${GRATIO_URL}/waInstance${GRATIO_ID}`;
const url = `${base}/getMessagesCount/${GRATIO_TOKEN}`;
const response = await fetch(url);
console.log(response.status, await response.json());
PHP
<?php
$base = getenv('GRATIO_URL') . '/waInstance' . getenv('GRATIO_ID');
$url = $base . '/getMessagesCount/' . getenv('GRATIO_TOKEN');
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 90,
]);
$response = json_decode(curl_exec($ch), true);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), PHP_EOL;
print_r($response);
Пример ответа
Ответ 200 OK:
{"count": 0}
Ещё примеры
showMessagesQueue
Список сообщений в очереди — всегда пустой:
curl "$GRATIO_URL/waInstance$GRATIO_ID/showMessagesQueue/$GRATIO_TOKEN"
Ответ 200 OK:
[]
clearMessagesQueue
Очистить очередь — очищать нечего:
curl "$GRATIO_URL/waInstance$GRATIO_ID/clearMessagesQueue/$GRATIO_TOKEN"
Ответ 200 OK:
{"isCleared": true}
Чем заменить
| Задача в Green API | В Gratio |
|---|---|
| дождаться, пока сообщение уйдёт из очереди | ответ sendMessage приходит после отправки |
| узнать, что сообщение дошло и прочитано | уведомление outgoingMessageStatus |
| не отправить дубль при повторе запроса | clientMessageId — см. Надёжная отправка без дублей |
| отправлять пачкой, не превышая темп | Gratio выравнивает запросы сам, а сверх правил площадки отвечает 429 с Retry-After — см. Темп и лимиты |
Ошибки
| Код | code |
Когда | Что делать |
|---|---|---|---|
401 |
— | неверный idInstance или токен |
взять ключ в кабинете |
Что дальше
- sendMessage — отправить сообщение.
- Переход с Green API — чем ещё Gratio отличается.
