在跟踪MSTeams机器人示例时,我无法从Teams获取任何消息以到达我的托管应用程序。
遵循MS团队示例-这是重现问题的最佳方式。
我运行了项目,并获得了endpoint作为https://kindly-ash.glitch.me/api/messages
。
在机器人框架网站上注册了这一点——通过网络聊天以及MS团队。
从MS团队发送消息时,没有请求到达侦听节点应用程序。
使用bot框架站点的webchat发送消息时,请求确实到达了侦听的Node应用程序,但出错了。
(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 Emulator进行测试时,始终会收到消息。
我无法判断MS团队是否没有发送请求,或者机器人框架站点有问题。有人能告诉我在设置工作中我可能遗漏了什么吗?
再试一次——我们认为我们已经解决了问题。
发生这种情况是因为Bot State Service已被弃用。为了测试,您可以使用In Memory Storage。请更新构造函数内src/Bot. ts中的代码以设置In Memory Storage,如下所示:
constructor(private _connector: teams.TeamsChatConnector,private botSettings: any,) {
super(_connector, botSettings);
this.set("persistConversationData", true);
var inMemoryStorage = new builder.MemoryBotStorage();
this.set('storage', inMemoryStorage);
请查看如何管理状态数据的留档。对于生产,请使用自定义数据存储。