imbot.v2.Event.get
Получить события бота
Описание
Метод imbot.v2.Event.get получает события для бота в агентском режиме опроса. Используется для ботов с eventMode: "fetch".
Метод подтверждает получение событий с ID меньше переданного offset. При следующем вызове возвращаются только новые события, начиная с подтвержденного.
События конкретного бота может получать только одно приложение — то, которое его зарегистрировало. Если нужно несколько независимых агентов — регистрируйте отдельного бота для каждого.
Параметры
botId
integer
обязательный
ID бота
botToken
string
необязательный
Уникальный токен авторизации бота. Обязателен при авторизации через вебхук, не нужен для OAuth.
Передавайте тот же botToken, который был указан при регистрации чат-бота
offset
integer
необязательный
Подтверждает все события с ID меньше указанного значения. При первом вызове не передается
limit
integer
необязательный
Максимальное количество возвращаемых событий (1–1000). По умолчанию 100
withUserEvents
boolean
необязательный
Включить пользовательские события (ONIMV2*) в ответ вместе с бот-событиями. По умолчанию false. Подробнее — ниже
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"botToken":"my_bot_token","offset":1000,"limit":50}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/imbot.v2.Event.get
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"botId":456,"offset":1000,"limit":50,"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/imbot.v2.Event.get
try {
const response = await $b24.callMethod('imbot.v2.Event.get', {
botId: 456,
offset: 1000,
limit: 50,
});
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.event.get(
bot_id=456,
bot_token="my_bot_token",
offset=1000,
limit=50,
).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.Event.get',
[
'botId' => 456,
'offset' => 1000,
'limit' => 50,
]
);
$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.Event.get',
{
botId: 456,
offset: 1000,
limit: 50,
},
function(result) {
if (result.error()) {
console.error(result.error().ex);
} else {
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'imbot.v2.Event.get',
[
'botId' => 456,
'offset' => 1000,
'limit' => 50,
]
);
if (!empty($result['error'])) {
echo 'Error: ' . $result['error_description'];
} else {
foreach ($result['result']['events'] as $event) {
echo $event['type'] . ': ' . $event['eventId'] . "\n";
}
}
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "imbot.v2.Event.get", b24.Params{
"botId": 456,
"botToken": "my_bot_token",
"offset": 1000,
"limit": 50,
}, b24.WithIdempotent())
if err != nil {
return fmt.Errorf("imbot.v2.Event.get: %w", err)
}
var item struct {
NextOffset int `json:"nextOffset"`
HasMore bool `json:"hasMore"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.NextOffset, item.HasMore)
Ответ
HTTP-статус: 200
{
"result": {
"events": [
{
"eventId": 1001,
"type": "ONIMBOTV2MESSAGEADD",
"date": "2025-01-15T10:30:00+03:00",
"data": {}
}
],
"nextOffset": 1002,
"hasMore": false
},
"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": "BOT_NOT_FOUND",
"error_description": "Bot not found"
}
| Код | Описание | Значение |
|---|---|---|
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 | Бот зарегистрирован другим приложением |
SCOPE_ERROR |
Scope error | Не хватает скоупа im — требуется при использовании withUserEvents: true |
AUTH_ERROR |
Auth error | Не удалось определить текущего пользователя |
USER_NOT_SUBSCRIBED |
User not subscribed | Пользователь не подписан на события через im.v2.Event.subscribe |

