目前在连接到Slack的机器人中使用LUIS。现在我正在使用交互式消息并尝试正确响应用户输入。当我从下拉列表中单击某个项目时,LUIS会将其作为消息接收。我可以使用session.message.text获取文本,但是我需要获取附件的callback_id以及从中发送的通道。
我已经使用console.log(session)
来了解会话的外观。从那里我看到session.message.sourceEvent
包含我需要的数据,但是我不能使用indexOf()
或contains()
来实际推断数据。我也试过session.message.sourceEvent.Payload
但最终获得了“[object [Object]]”。我已经尝试搜索有关会话格式的文档,但无济于事。
下面是我运行console.log(session.message.sourceEvent)
时返回的内容的片段。
{ Payload:
action_ts: '1513199773.200354',
is_app_unfurl: false,
subtype: 'bot_message',
team: { id: 'T03QR2PHH', domain: 'americanairlines' },
user: { id: 'U6DT58F2T', name: 'john.cerreta' },
message_ts: '1513199760.000073',
attachment_id: '1',
ts: '1513199760.000073' },
actions: [ [Object] ],
callback_id: 'map_selection1',
original_message:
username: 'Rallybot',
response_url: 'https://hooks.slack.com/actions/T03QR2PHH/287444348935/Y6Yye3ijlC6xfmn8qjMK4ttB',
type: 'message',
{ type: 'interactive_message',
channel: { id: 'G6NN0DT88', name: 'privategroup' },
token: 'removed for security',
{ text: 'Please choose the Rally and Slack team you would like to map below.',
bot_id: 'B7WDX03UM',
attachments: [Array],
trigger_id: '285857445393.3841091595.085028141d2b8190b38f1bf0ca47dd88' },
ApiToken: 'removed for security' }
答案 0 :(得分:1)
session.message.sourceEvent
是javascript Object
,但indexOf
或contains
是String
或Array
类型的函数。
对象中需要的任何信息,您应该直接使用代码<object>.<key>
来调用该值。例如,您可以尝试session.message.sourceEvent.Payload.action_ts
。
此外,您可以使用Object.keys(session.message.sourceEvent)
获取此对象中的所有密钥。