Twilio Flex 2.0调用SendMessage Action时如何获取conversationSid?
解决Twilio Flex 2.0 SendMessage Action获取conversationSid的问题
获取conversationSid的几种可行方法:
- 从Redux Store读取当前活跃会话
Flex的会话状态由Redux管理,可直接从Store中提取当前会话的SID:
// 获取Flex的Redux Store实例 const flexStore = Flex.getStore(); // 用可选链避免空值报错,提取当前会话的conversationSid const targetConversationSid = flexStore.getState().flex.conversations.currentConversation?.conversationSid; // 校验后调用SendMessage Action if (targetConversationSid) { Actions.invokeAction('SendMessage', { body: "你的预设消息内容", conversationSid: targetConversationSid }); }
- 从组件Props中提取会话信息
如果你的按钮嵌入在会话相关组件(如Task卡片、消息列表)内,可直接从组件props中获取:
// 示例:按钮作为Task详情面板的子组件 const PresetReplyButton = (props) => { const handleSend = () => { // 从task属性中提取conversationSid const conversationSid = props.task.attributes.conversationSid; if (conversationSid) { Actions.invokeAction('SendMessage', { body: "预设回复内容", conversationSid: conversationSid }); } }; return <button onClick={handleSend}>发送预设回复</button>; };
关于文档标注conversationSid为可选的说明
文档标注该参数可选,是因为当在当前活跃会话的上下文内触发Action时(比如默认的消息输入框),Flex会自动从上下文环境中填充conversationSid,无需手动传入。但如果你的按钮是在会话上下文之外(如全局导航栏、独立插件面板),或者未绑定到当前任务,就必须显式传入该参数,否则Action无法确定目标会话。
内容的提问来源于stack exchange,提问作者velapanur
相关产品推荐
相关产品推荐

