我正在尝试理解会话,但无法从中获取任何数据

时间:2017-12-13 22:20:54

标签: node.js botframework slack luis

目前在连接到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' }

1 个答案:

答案 0 :(得分:1)

session.message.sourceEvent是javascript Object,但indexOfcontainsStringArray类型的函数。

对象中需要的任何信息,您应该直接使用代码<object>.<key>来调用该值。例如,您可以尝试session.message.sourceEvent.Payload.action_ts

此外,您可以使用Object.keys(session.message.sourceEvent)获取此对象中的所有密钥。