MS Teams示例未将消息发送到侦听机器人应用程序

时间:2018-07-28 15:12:19

标签: botframework microsoft-teams

在关注MS Teams机器人示例时,我无法从Teams中获取任何消息以访问我的托管应用程序。

MS Teams sample之后-这是重现问题的最佳方法。

我运行了项目,并获得了https://kindly-ash.glitch.me/api/messages的端点。

将此注册到bot framework site-与Webchat和MS Teams一起。

enter image description here

从MS Teams发送消息时,没有任何请求到达监听Node应用程序。

enter image description here

使用bot framework site's webchat发送消息时,请求确实到达了侦听节点应用程序,但出错了。

(node:648) UnhandledPromiseRejectionWarning: Error: Request to 'https://state.botframework.com/v3/botstate/webchat/conversations/873ec470c2fe4cf687c186d31c2b17f4/users/873ec470c2fe4cf687c186d31c2b17f4' failed: [405] Method Not Allowed

    at Request._callback (/app/node_modules/botbuilder/lib/bots/ChatConnector.js:523:46)

    at Request.self.callback (/app/node_modules/request/request.js:188:22)

    at emitTwo (events.js:126:13)

    at Request.emit (events.js:214:7)

    at Request.<anonymous> (/app/node_modules/request/request.js:1171:10)

    at emitOne (events.js:116:13)

    at Request.emit (events.js:211:7)

    at IncomingMessage.<anonymous> (/app/node_modules/request/request.js:1091:12)

    at Object.onceWrapper (events.js:313:30)

    at emitNone (events.js:111:20)

(node:648) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)

(node:648) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

除上述内容外,我还在本地尝试了这些示例并通过ngrok进行了公开,还尝试了在自己的服务器上托管。我也尝试过删除和重新创建漫游器,删除并重新添加频道。

直接通过Bot Framework仿真器进行测试时,始终会收到该消息。

我无法确定MS Teams是否没有发出请求,或者Bot Framework网站有问题。谁能告诉我在设置工作中我可能会缺少的地方吗?

2 个答案:

答案 0 :(得分:2)

再试一次-我们认为我们已经解决了问题。

答案 1 :(得分:1)

之所以发生这种情况,是因为Bot State Service已过时。为了进行测试,您可以使用In Memory Storage。 请更新构造函数中的 src / Bot.ts 中的代码,以如下方式设置“内存中存储”:

constructor(private _connector: teams.TeamsChatConnector,private botSettings: any,) {
    super(_connector, botSettings);
    this.set("persistConversationData", true);

    var inMemoryStorage = new builder.MemoryBotStorage();    
    this.set('storage', inMemoryStorage);  

请查看有关如何Manage state data的文档。要进行生产,请使用Custom Data Storage