82 lines
2.2 KiB
PHP
82 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace addon\aikefu\event;
|
|
|
|
use addon\aikefu\api\controller\Kefu as KefuApi;
|
|
|
|
/**
|
|
* 处理智能客服创建会话事件
|
|
*/
|
|
class KefuCreateConversation
|
|
{
|
|
|
|
/**
|
|
* 处理智能客服创建会话事件
|
|
* @param array $data 事件数据
|
|
* @return array
|
|
*/
|
|
public function handle($data)
|
|
{
|
|
try {
|
|
// 创建addon的KefuApi实例
|
|
$kefu_api = new KefuApi();
|
|
|
|
// 调用初始化方法设置属性
|
|
$kefu_api->initializeForEvent($data);
|
|
|
|
// 调用addon的createConversation方法
|
|
$response = $kefu_api->createConversation();
|
|
|
|
// 返回响应数据
|
|
return json_decode($response->getContent(), true);
|
|
} catch (\Exception $e) {
|
|
return [
|
|
'code' => -1,
|
|
'message' => '创建会话失败:' . $e->getMessage(),
|
|
'data' => []
|
|
];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 处理智能客服获取历史消息事件
|
|
* @param array $data 事件数据
|
|
* @return array
|
|
*/
|
|
public function handleKefuGetHistory($data)
|
|
{
|
|
try {
|
|
// 创建addon的KefuApi实例
|
|
$kefu_api = new KefuApi();
|
|
|
|
// 调用初始化方法设置属性
|
|
$kefu_api->initializeForEvent($data);
|
|
|
|
// 调用addon的getHistory方法
|
|
$response = $kefu_api->getHistory();
|
|
|
|
// 返回响应数据
|
|
return json_decode($response->getContent(), true);
|
|
} catch (\Exception $e) {
|
|
return [
|
|
'code' => -1,
|
|
'message' => '获取历史消息失败:' . $e->getMessage(),
|
|
'data' => []
|
|
];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 事件监听映射
|
|
* @return array
|
|
*/
|
|
public function subscribe()
|
|
{
|
|
return [
|
|
'KefuChat' => 'handleKefuChat',
|
|
'KefuCreateConversation' => 'handleKefuCreateConversation',
|
|
'KefuGetHistory' => 'handleKefuGetHistory',
|
|
];
|
|
}
|
|
}
|