使用 Bot Framework 代表用户发送消息

Posted

技术标签:

【中文标题】使用 Bot Framework 代表用户发送消息【英文标题】:Using the Bot Framework to send message on the user's behalf 【发布时间】:2017-03-30 17:35:21 【问题描述】:

我目前正在尝试接受来自用户的语音输入,将其输入 Bing Speech API 以获取文本,并将该文本作为用户响应传递。我已经从 Bing 接收到文本,但我不确定如何将该文本作为用户响应发送。我一直在搜索 GitHub,因此感谢任何反馈。相关代码如下:

function(session)
    var bing = new client.BingSpeechClient('mykey');
    var results = '';
    var wave = fs.readFileSync('./new.wav');

    const text = bing.recognize(wave).then(result => 
      console.log('Speech To Text completed');
      console.log(result.header.lexical)
      console.log('\n');
      results.response = result.header.lexical;
    );
    ]

【问题讨论】:

更新:想通了(排序)。为了利用发回这个用户输入,我不得不使用另一张卡。在卡片的上下文中,我可以使用imBack 函数。 如果您已经解决了自己的问题,请将其作为答案发布并接受:这样社区可以从您的经验中学习。谢谢。 【参考方案1】:

您应该使用session.send

我建议您查看intelligence-SpeechToText 示例,其中显示了类似的场景。

【讨论】:

感谢您的回复!我已经查看了该示例并开始使用它。 session.send 的问题在于它允许机器人响应用户。我正在寻找相反的方式。另外,感谢您的编辑。 哈哈是的!我有一种预感,它与Message 有关,但我还没有发现什么东西跳出来。 我还没有看到这样做......我什至不确定它是否可行......老实说,你认为它真的很奇怪的场景。你在哪里读到了那个场景或者你从哪里得到了关于用 Message 做这件事的信息?如果您要做的是再次将文本消息发送给机器人,以便它可以对文本执行某些操作,您应该只提取文本并在 bing.recognize 的回调中处理所有内容,而不是尝试模拟发送消息代表用户。 因此,一旦我们从 Bing 获取文本(这很棒),我们肯定可以处理文本,但我们确实希望增强用户体验。我们试图避免的情况是我们必须让机器人用“我听到的是 x”来回应。和球队聊过之后,我觉得这绝对是我们可以放弃的。我们只是不知道它会被证明如此困难!【参考方案2】:

更新:想通了(排序)。为了利用发回这个用户输入,我不得不使用另一张卡。在卡片的上下文中,我可以使用 imBack 函数

【讨论】:

以上是关于使用 Bot Framework 代表用户发送消息的主要内容,如果未能解决你的问题,请参考以下文章

Bot Framework 发送不必要的错误消息

如何获取从 Bot Framework Composer 发送的消息的 ResourceResponse.Id

作为Microsoft团队usig图形api的bot通道中的bot发送给用户的消息

使用 Bot Framework 通过 NodeJS 发布到 Microsoft Teams 频道

如何通过 Bot Framework 向 Teams 中的用户发送通知?

传出 Skype 消息不适用于 Bot Framework