Блог Горошко Андрея Bitrix24 Получить сообщения чата и диалога imopenlines.session.history.get

Получить сообщения чата и диалога imopenlines.session.history.get

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «Получить сообщения чата и диалога imopenlines.session.history.get», разберем архитектурные особенности и предоставим готовые к интеграции примеры кода.

Получить сообщения чата и диалога imopenlines.session.history.get

Тут может не хватать некоторых данных — дополним в ближайшее время

  • не указаны типы параметров
  • отсутствуют примеры
  • отсутствует ответ в случае ошибки

> Scope: imopenlines
>
> Кто может выполнять метод: любой пользователь

Метод получает историю сессии.

Параметры метода

Название
Тип
ПримерОписание
CHAT_ID
unknown
2020Идентификатор чата
SESSION_ID
unknown
494Идентификатор сессии

Если пользователь не является участником чата, то при указании в вызове только параметра CHAT_ID, будет возвращаться ошибка:

{error: 'ACCESS_DENIED', error_description: 'Вы не можете открыть этот разговор, т.к. у вас недостаточно прав.', ex: s}
error
:
"ACCESS_DENIED"
error_description
:
"Вы не можете открыть этот разговор, т.к. у вас недостаточно прав."

Следует использовать параметр SESSION_ID, с ним ошибка не возвращается. Для получения SESSION_ID используйте метод imopenlines.dialog.get. Если у чата есть сессия, то её ID будет в 6-м параметре ключа entity_data_1.

Практические примеры использования в коде

  • cURL (Webhook)

// пример для cURL (Webhook)

  • cURL (OAuth)

// пример для cURL (OAuth)

  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'imopenlines.session.history.get',
    		{
    			CHAT_ID: 2024
    		}
    	);
    	
    	const result = response.getData().result;
    	console.log(result);
    }
    catch( error )
    {
    	console.error(error.ex);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'imopenlines.session.history.get',
                [
                    'CHAT_ID' => 2024
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        if ($result->error()) {
            echo 'Error: ' . $result->error()->ex;
        } else {
            echo 'Success: ' . print_r($result->data(), true);
        }
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error getting session history: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'imopenlines.session.history.get',
        {
            CHAT_ID: 2024
        },
        function(result)
        {
            if(result.error())
            {
                console.error(result.error().ex);
            }
            else
            {
                console.log(result.data());
            }
        }
    );
  • PHP CRest

// пример для php

Ответ в случае успеха

{
    "result":{
        "chatId":1982,
        "canJoin":"Y",
        "canVoteHead":"Y",
        "sessionId":469,
        "sessionVoteHead":0,
        "sessionCommentHead":null,
        "userId":"chat1982",
        "message":{
            "19009":{
                "id":"19009",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-30T07:45:34+02:00",
                "text":"\u0414\u0438\u0430\u043b\u043e\u0433 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d.",
                "textlegacy":"\u0414\u0438\u0430\u043b\u043e\u0433 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d.",
                "params":{
                    "class":"bx-messenger-content-item-ol-end",
                    "componentId":"bx-imopenlines-message",
                    "imolVoteHead":0,
                    "imolVoteSid":469,
                    "imolVoteUser":0,
                    "type":"lines"
                }
            },
            "19008":{
                "id":"19008",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-30T07:45:33+02:00",
                "text":"[USER=1 REPLACE]\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u041b\u043e\u0433\u0438\u043d\u043e\u0432",
                "textlegacy":"[USER=1 REPLACE]\u0412\u043b\u0430\u0434\u0438\u043c\u0438\u0440 \u041b\u043e\u0433\u0438\u043d\u043e",
                "params":[
                
                ]
            },
            "18148":{
                "id":"18148",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-19T01:52:03+02:00",
                "text":"\u041d\u0415 \u041e\u0422\u0412\u0415\u0427\u0415\u041d\u041e! ALARM! WARNING! ATTENTION! \u041a \u0441\u04",
                "textlegacy":"\u041d\u0415 \u041e\u0422\u0412\u0415\u0427\u0415\u041d\u041e! ALARM! WARNING! ATTENTION! \u041a \u04",
                "params":{
                    "class":"bx-messenger-content-item-ol-output",
                    "componentId":"bx-imopenlines-message",
                    "connectorMid":[
                        "18149"
                    ],
                    "imolForm":"offline",
                    "type":"lines"
                }
            },
            "18113":{
                "id":"18113",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-19T01:40:26+02:00",
                "text":"\u041d\u0430\u0447\u0430\u0442 \u043d\u043e\u0432\u044b\u0439 \u0434\u0438\u0430\u043b\u043e\u0433 \u2116[U",
                "textlegacy":"\u041d\u0430\u0447\u0430\u0442 \u043d\u043e\u0432\u044b\u0439 \u0434\u0438\u0430\u043b\u043e\u0433 \u",
                "params":{
                    "class":"bx-messenger-content-item-ol-start"
                }
            },
            "18114":{
                "id":"18114",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-19T01:40:26+02:00",
                "text":"\u041f\u0435\u0440\u0435\u0434\u0430\u043d\u044b\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435",
                "textlegacy":"\u003CB\u003E\u041f\u0435\u0440\u0435\u0434\u0430\u043d\u044b\u0434\u043e\u043f\u043e\u043b\u043d\u0",
                "params":{
                    "attach":[
                        {
                            "id":1684478426,
                            "blocks":[
                                {
                                    "message":"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0441\u0430\u0439\u0442\u0430"
                                }
                            ],
                            "description":"",
                            "color":"#df532d"
                        }
                    ],
                    "class":"bx-messenger-content-item-system"
                }
            },
            "18115":{
                "id":"18115",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-19T01:40:26+02:00",
                "text":"\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u04",
                "textlegacy":"\u041e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u04",
                "params":[
                
                ]
            },
            "18116":{
                "id":"18116",
                "chatid":"1982",
                "senderid":"450",
                "recipientid":"chat1982",
                "date":"2023-05-19T01:40:26+02:00",
                "text":"sdfsdfsdfsdfdff",
                "textlegacy":"sdfsdfsdfsdfdff",
                "params":{
                    "connectorMid":[
                        "18112"
                    ]
                }
            },
            "18117":{
                "id":"18117",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-19T01:40:26+02:00",
                "text":"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u041e\u",
                "textlegacy":"\u0414\u043e\u0431\u0440\u043e \u043f\u043e\u0436\u0430\u043b\u043e\u0432\u0430\u0442\u044c \u0432 \u",
                "params":{
                    "class":"bx-messenger-content-item-ol-output",
                    "connectorMid":[
                        "18118"
                    ]
                }
            },
            "18119":{
                "id":"18119",
                "chatid":"1982",
                "senderid":"0",
                "recipientid":"chat1982",
                "date":"2023-05-19T01:40:26+02:00",
                "text":"[B]\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u043e\u0440\u043c\u0430 \u0022\u0424",
                "textlegacy":"\u003CB\u003E\u041e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0444\u043e\u0440\u043c\u0",
                "params":{
                    "attach":[
                        {
                            "id":1684478426,
                            "blocks":[
                                {
                                    "link":[
                                        {
                                            "name":"http:\/\/b24-3b4hq4.bitrix24.site\/crm_form_v0fcl\/",
                                            "link":"http:\/\/b24-3b4hq4.bitrix24.site\/crm_form_v0fcl\/"
                                        }
                                    ]
                                }
                            ],
                            "description":""
                        }
                    ],
                    "componentId":"bx-imopenlines-form",
                    "connectorMid":[
                        "18120"
                    ],
                    "crmFormId":"3",
                    "crmFormSec":"huqwyy"
                }
            }
        },
        "usersMessage":{
            "chat1982":[
                "19009",
                "19008",
                "18148",
                "18113",
                "18114",
                "18115",
                "18116",
                "18117",
                "18119"
            ]
        },
        "users":{
            "450":{
                "id":"450",
                "name":"\u0413\u043e\u0441\u0442\u044c",
                "active":true,
                "firstName":"\u0413\u043e\u0441\u0442\u044c",
                "lastName":"",
                "workPosition":null,
                "color":"#ab7761",
                "avatar":"\/bitrix\/js\/im\/images\/blank.gif",
                "avatarId":null,
                "birthday":false,
                "gender":"M",
                "phoneDevice":false,
                "phones":false,
                "extranet":true,
                "tzOffset":0,
                "network":false,
                "bot":false,
                "connector":true,
                "profile":"\/company\/personal\/user\/450\/",
                "externalAuthId":"imconnector",
                "status":null,
                "idle":false,
                "lastActivityDate":"2023-05-19T15:40:26+02:00",
                "mobileLastDate":false,
                "desktopLastDate":false,
                "departments":[
                
                ],
                "absent":false,
                "services":null
            }
        },
        "openlines":{
            "canvoteashead":{
                "58":true
            }
        },
        "userInGroup":[
        
        ],
        "woUserInGroup":[
        
        ],
        "chat":{
            "1982":{
                "id":"1982",
                "name":"\u0411\u0443\u0440\u044b\u0439 \u0433\u043e\u0441\u0442\u044c \u211633 - A1",
                "owner":"0",
                "color":"#ab7761",
                "extranet":false,
                "avatar":"\/bitrix\/js\/im\/images\/blank.gif",
                "call":"0",
                "callNumber":"",
                "entityType":"LINES",
                "entityId":"livechat|58|1981|450",
                "entityData1":"N|NONE|0|N|N|0|1684478426|0|0|0",
                "entityData2":"",
                "entityData3":"N",
                "public":"",
                "muteList":{
                    "450":false
                },
                "managerList":null,
                "dateCreate":"2023-05-19T08:40:26+02:00",
                "type":"lines",
                "messageType":"L"
            }
        },
        "userBlockChat":{
            "1982":{
                "450":false
            }
        },
        "userInChat":{
            "1982":[
                450
            ]
        },
        "files":[
        
        ]
    },
    "time":{
        "start":1685712569.097672,
        "finish":1685712569.247064,
        "duration":0.14939212799072266,
        "processing":0.0682840347290039,
        "date_start":"2023-06-02T15:29:29+02:00",
        "date_finish":"2023-06-02T15:29:29+02:00"
    }
}

Ответ в случае ошибки

Возможные коды ошибок

КодОписание
ACCESS_DENIEDУ текущего пользователя нет доступа к указанному чату
CHAT_TYPEУказанный чат не является открытой линией
CHAT_IDУказан не корректный идентификатор чата

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Получить сообщения чата и диалога imopenlines.session.history.get»:

Использование современных стандартов D7 при работе с imopenlines.session.history.get позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Как использовать метод SDK catalog.catalog.get в Битрикс24Как использовать метод SDK catalog.catalog.get в Битрикс24

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать метод SDK catalog.catalog.get в Битрикс24», проанализируем

Как использовать метод SDK sale.businessValuePersonDomain.deleteByFilter в Би…Как использовать метод SDK sale.businessValuePersonDomain.deleteByFilter в Би…

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Как использовать метод SDK sale.businessValuePersonDomain.deleteByFilter в Би…», проанализируем

Как использовать метод SDK department.add в Битрикс24Как использовать метод SDK department.add в Битрикс24

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Как использовать метод SDK department.add в Битрикс24». Мы подготовили подробный разбор принципов работы и развернутые