imbot.v2.Chat.Message.read
Отметить сообщения как прочитанные
Описание
Метод imbot.v2.Chat.Message.read отмечает сообщения как прочитанные от имени бота. Отмечает прочитанными все сообщения до указанного включительно. Если messageId не указан — отмечает прочитанными все сообщения в чате.
Типичный сценарий: бот обработал входящее сообщение из события ONIMBOTV2MESSAGEADD и сбрасывает счетчик непрочитанных, чтобы у пользователя не оставалось «висящих» уведомлений. В ответе возвращается оставшийся счетчик counter.
Параметры
botId
integer
обязательный
ID бота
botToken
string
необязательный
Уникальный токен авторизации бота. Обязателен при авторизации через вебхук, не нужен для OAuth.
Передавайте тот же botToken, который был указан при регистрации чат-бота
dialogId
string
обязательный
ID диалога. Для групповых чатов — chat{chatId}, для личных — {userId}. Подробнее — Формат dialogId
messageId
integer
необязательный
Прочитать все сообщения до этого включительно. Если не указан — прочитает все сообщения в чате
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"botToken":"my_bot_token","dialogId":"chat5","messageId":789}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Chat.Message.read
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"dialogId":"chat5","messageId":789,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/imbot.v2.Chat.Message.read
try {
const response = await $b24.callMethod('imbot.v2.Chat.Message.read', {
botId: 456,
dialogId: 'chat5',
messageId: 789,
});
const { result } = response.getData();
console.log('result:', result);
} catch (error) {
console.error('Error:', error);
}
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.imbot.v2.chat.message.read(
bot_id=456,
dialog_id="chat5",
message_id=789,
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'imbot.v2.Chat.Message.read',
[
'botId' => 456,
'dialogId' => 'chat5',
'messageId' => 789,
]
);
$result = $response
->getResponseData()
->getResult();
echo 'result: ' . print_r($result, true);
} catch (Throwable $exception) {
error_log($exception->getMessage());
echo 'Error: ' . $exception->getMessage();
}
BX24.callMethod(
'imbot.v2.Chat.Message.read',
{
botId: 456,
dialogId: 'chat5',
messageId: 789,
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'imbot.v2.Chat.Message.read',
[
'botId' => 456,
'dialogId' => 'chat5',
'messageId' => 789,
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
echo 'Counter: ' . $result['result']['counter'];
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "imbot.v2.Chat.Message.read", b24.Params{
"botId": 456,
"botToken": "my_bot_token",
"dialogId": "chat5",
"messageId": 789,
})
if err != nil {
return fmt.Errorf("imbot.v2.Chat.Message.read: %w", err)
}
var item struct {
ChatID b24.ID `json:"chatId"`
LastID b24.ID `json:"lastId"`
Counter int `json:"counter"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.ChatID, item.LastID)
Ответ
HTTP-статус: 200
{
"result": {
"chatId": 5,
"lastId": 789,
"counter": 0,
"viewedMessages": [785, 786, 789]
},
"time": {
"start": 1728626400.123,
"finish": 1728626400.234,
"duration": 0.111,
"processing": 0.045,
"date_start": "2024-10-11T10:00:00+03:00",
"date_finish": "2024-10-11T10:00:00+03:00"
}
}
Обработка ошибок
HTTP-статус: 400
{
"error": "ACCESS_DENIED",
"error_description": "Access denied"
}
| Код | Описание | Значение |
|---|---|---|
BOT_TOKEN_NOT_SPECIFIED |
Bot token is not specified | Не указан botToken. Обязателен при авторизации через вебхук |
BOT_ID_REQUIRED |
Bot ID is required | Не указан botId |
BOT_NOT_FOUND |
Bot not found | Бот не найден |
BOT_OWNERSHIP_ERROR |
Bot is registered by another application | Бот зарегистрирован другим приложением |
ACCESS_DENIED |
Access denied | Бот не является участником чата |
MESSAGE_NOT_FOUND |
Message not found | Указанное сообщение не найдено или недоступно |

