imconnector.update.messages
Изменить отправленные сообщения
Описание
Метод imconnector.update.messages обновляет данные ранее переданных сообщений внешней системы в открытой линии.
Метод работает только в контексте приложения.
В параметрах метода используются значения внешней системы: идентификатор пользователя, идентификатор чата, ссылка на чат и его название в приложении, которое зарегистрировало коннектор.
Для обновления передавайте те же message.id и chat.id, которые использовали при отправке сообщений методом imconnector.send.messages.
Параметры
CONNECTOR
string
обязательный
Строковый код коннектора, который задали в параметре ID при вызове imconnector.register
LINE
integer
обязательный
Идентификатор открытой линии.
Идентификатор можно получить методами imopenlines.config.get и imopenlines.config.list.get
MESSAGES
array
обязательный
Массив сообщений для обновления. Каждый элемент массива — одно сообщение в формате объекта с тремя обязательными блоками: user, message, chat.
Структура объекта подробно описана ниже
Параметр MESSAGES
user
object
необязательный
Данные пользователя внешней системы.
Структура объекта подробно описана ниже
message
object
необязательный
Данные сообщения внешней системы.
Структура объекта подробно описана ниже
chat
object
необязательный
Данные чата внешней системы.
Структура объекта подробно описана ниже
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"CONNECTOR": "myconnector",
"LINE": 107,
"MESSAGES": [
{
"user": {
"id": "ext-user-42",
"last_name": "Иванов",
"name": "Иван",
"picture": {"url": "https://example.ru/u42.png"},
"url": "https://example.ru/users/42",
"gender": "male",
"email": "ivan@example.ru",
"phone": "+79990000000"
},
"message": {
"id": "ext-msg-1001",
"date": 1773266050,
"text": "Добрый день, уточнили детали"
},
"chat": {
"id": "channel-123",
"name": "Канал поддержки",
"url": "https://example.ru/chats/123"
}
}
],
"auth": "**put_access_token_here**"
}' \
https://**put_your_bitrix24_address**/rest/imconnector.update.messages
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
// Shape of the payload returned in result (match the "response handling" section of the page)
type UpdateMessagesResult = {
SUCCESS: boolean
DATA: {
RESULT: Array<{
user: string
message: {
id: string
date: object
text: string
files?: unknown[]
}
chat: {
id: string
name: string
description: string
}
extra?: {
skip_phone_validate?: string
disable_tracker?: string
}
SUCCESS: boolean
ERRORS?: string[]
}>
}
}
try {
const response = await $b24.actions.v2.call.make<UpdateMessagesResult>({
method: 'imconnector.update.messages',
params: {
CONNECTOR: 'myconnector',
LINE: 107,
MESSAGES: [
{
user: {
id: 'ext-user-42',
last_name: 'Ivanov',
name: 'Ivan',
picture: { url: 'https://example.ru/u42.png' },
url: 'https://example.ru/users/42',
gender: 'male',
email: 'ivan@example.ru',
phone: '+79990000000',
},
message: {
id: 'ext-msg-1001',
date: 1773266050,
text: 'Good afternoon, details clarified',
},
chat: {
id: 'channel-123',
name: 'Support channel',
url: 'https://example.ru/chats/123',
},
},
],
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Update status:', result.SUCCESS, 'Results:', result.DATA.RESULT)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function updateMessages() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'imconnector.update.messages',
params: {
CONNECTOR: 'myconnector',
LINE: 107,
MESSAGES: [
{
user: {
id: 'ext-user-42',
last_name: 'Ivanov',
name: 'Ivan',
picture: { url: 'https://example.ru/u42.png' },
url: 'https://example.ru/users/42',
gender: 'male',
email: 'ivan@example.ru',
phone: '+79990000000',
},
message: {
id: 'ext-msg-1001',
date: 1773266050,
text: 'Good afternoon, details clarified',
},
chat: {
id: 'channel-123',
name: 'Support channel',
url: 'https://example.ru/chats/123',
},
},
],
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Update status:', result.SUCCESS, 'Results:', result.DATA.RESULT)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', updateMessages)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.imconnector.update.messages(
connector="myconnector",
line=107,
messages=[
{
"user": {
"id": "ext-user-42",
"last_name": "Ivanov",
"name": "Ivan",
"picture": {
"url": "https://example.com/u42.png",
},
"url": "https://example.com/users/42",
"gender": "male",
"email": "ivan@example.com",
"phone": "+79990000000",
},
"message": {
"id": "ext-msg-1001",
"date": 1773266050,
"text": "Good afternoon, details clarified",
},
"chat": {
"id": "channel-123",
"name": "Support channel",
"url": "https://example.com/chats/123",
},
},
],
).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}")
$result = $b24Service->core->call(
'imconnector.update.messages',
[
'CONNECTOR' => 'myconnector',
'LINE' => 107,
'MESSAGES' => [
[
'user' => [
'id' => 'ext-user-42',
'last_name' => 'Иванов',
'name' => 'Иван',
'picture' => ['url' => 'https://example.ru/u42.png'],
'url' => 'https://example.ru/users/42',
'gender' => 'male',
'email' => 'ivan@example.ru',
'phone' => '+79990000000',
],
'message' => [
'id' => 'ext-msg-1001',
'date' => 1773266050,
'text' => 'Добрый день, уточнили детали',
],
'chat' => [
'id' => 'channel-123',
'name' => 'Канал поддержки',
'url' => 'https://example.ru/chats/123',
],
],
],
]
);
BX24.callMethod(
'imconnector.update.messages',
{
CONNECTOR: 'myconnector',
LINE: 107,
MESSAGES: [
{
user: {
id: 'ext-user-42',
last_name: 'Иванов',
name: 'Иван',
picture: { url: 'https://example.ru/u42.png' },
url: 'https://example.ru/users/42',
gender: 'male',
email: 'ivan@example.ru',
phone: '+79990000000',
},
message: {
id: 'ext-msg-1001',
date: 1773266050,
text: 'Добрый день, уточнили детали',
},
chat: {
id: 'channel-123',
name: 'Канал поддержки',
url: 'https://example.ru/chats/123',
},
},
],
},
function(result) {
console.log(result.data());
}
);
$result = CRest::call(
'imconnector.update.messages',
[
'CONNECTOR' => 'myconnector',
'LINE' => 107,
'MESSAGES' => [
[
'user' => [
'id' => 'ext-user-42',
'last_name' => 'Иванов',
'name' => 'Иван',
'picture' => ['url' => 'https://example.ru/u42.png'],
'url' => 'https://example.ru/users/42',
'gender' => 'male',
'email' => 'ivan@example.ru',
'phone' => '+79990000000',
],
'message' => [
'id' => 'ext-msg-1001',
'date' => 1773266050,
'text' => 'Добрый день, уточнили детали',
],
'chat' => [
'id' => 'channel-123',
'name' => 'Канал поддержки',
'url' => 'https://example.ru/chats/123',
],
],
],
]
);
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "imconnector.update.messages", b24.Params{
"CONNECTOR": "myconnector",
"LINE": 107,
"MESSAGES": []b24.Params{
{
"user": b24.Params{
"id": "ext-user-42",
"last_name": "Иванов",
"name": "Иван",
"picture": b24.Params{
"url": "https://example.ru/u42.png",
},
"url": "https://example.ru/users/42",
"gender": "male",
"email": "ivan@example.ru",
"phone": "+79990000000",
},
"message": b24.Params{
"id": "ext-msg-1001",
"date": 1773266050,
"text": "Добрый день, уточнили детали",
},
"chat": b24.Params{
"id": "channel-123",
"name": "Канал поддержки",
"url": "https://example.ru/chats/123",
},
},
},
})
if err != nil {
return fmt.Errorf("imconnector.update.messages: %w", err)
}
var item struct {
Success bool `json:"SUCCESS"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.Success)
Ответ
HTTP-статус: 200
{
"result": {
"SUCCESS": true,
"DATA": {
"RESULT": [
{
"user": "585",
"message": {
"id": "ext-msg-1001",
"date": {},
"text": "Добрый день, уточнили детали"
},
"chat": {
"id": "channel-123",
"name": "Канал поддержки",
"description": "Ссылка на исходный пост: https://example.ru/chats/123"
},
"SUCCESS": true
}
]
}
},
"time": {
"start": 1773322669,
"finish": 1773322669.300999,
"duration": 0.3009989261627197,
"processing": 0,
"date_start": "2026-03-12T16:37:49+03:00",
"date_finish": "2026-03-12T16:37:49+03:00",
"operating_reset_at": 1773323269,
"operating": 0
}
}
Возвращаемые данные
SUCCESS
boolean
Возвращает true в случае успешного изменения сообщения
DATA
object
Данные обработки сообщений.
Структура объекта подробно описана ниже
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "ERROR_ARGUMENT",
"error_description": "Argument 'LINE' is null or empty"
}
| Код | Описание | Значение |
|---|---|---|
403 |
WRONG_AUTH_TYPE |
Current authorization type is denied for this method Application context required |
400 |
ERROR_ARGUMENT |
Argument 'CONNECTOR' is null or empty |
400 |
ERROR_ARGUMENT |
Argument 'LINE' is null or empty |
400 |
ERROR_ARGUMENT |
Argument 'MESSAGES' is null or empty |
400 |
NOT_ACTIVE_LINE |
Линия c таким ID неактивна или не существует |
400 |
IMCONNECTOR_NO_CORRECT_PROVIDER |
Не удалось найти подходящий провайдер для коннектора |

