新增 Facebook Messenger 渠道扩展,支持在 Yuxi 平台中集成 Messenger 即时通讯渠道。 包含以下功能模块: - config: 渠道配置管理 - gateway: SSE/WebSocket 网关接入 - webhook: Webhook 事件处理 - outbound: 外发消息管理 - streaming: 流式消息处理 - pairing: 用户配对与绑定 - security: 安全校验 - dedupe: 消息去重 - monitor: 渠道状态监控 - status: 会话状态管理 - actions: 动作处理 - template: 消息模板 - quick_reply: 快捷回复 - private_reply: 私密回复 - handover: 转人工切换 - persona: 人设管理 - profile: 主页配置 - user: 用户信息 - insights: 数据洞察 - notification: 通知推送 - media: 媒体资源处理 - types: 类型定义
33 lines
1.4 KiB
Python
33 lines
1.4 KiB
Python
class MessengerActions:
|
|
def __init__(self):
|
|
self._outbound = None
|
|
|
|
def set_outbound(self, outbound) -> None:
|
|
self._outbound = outbound
|
|
|
|
def get_message_actions(self) -> list:
|
|
return [
|
|
{
|
|
"name": "send_template",
|
|
"description": "Send a Messenger template message (button/generic/media/receipt)",
|
|
"params": [
|
|
{"name": "target_id", "type": "string", "description": "Recipient PSID"},
|
|
{"name": "template_type", "type": "string", "description": "button|generic|media|receipt"},
|
|
{"name": "template_payload", "type": "object", "description": "Template payload dict"},
|
|
],
|
|
},
|
|
]
|
|
|
|
async def execute_message_action(self, action_name: str, params: dict) -> dict:
|
|
if not self._outbound:
|
|
return {"success": False, "error": "outbound not initialized"}
|
|
|
|
if action_name == "send_template":
|
|
target_id = params.get("target_id", "")
|
|
template_type = params.get("template_type", "button")
|
|
template_payload = params.get("template_payload", {})
|
|
result = await self._outbound.send_template(target_id, template_type, template_payload)
|
|
return {"success": result.success, "message_id": result.message_id}
|
|
|
|
return {"success": False, "error": f"unknown action: {action_name}"}
|