Facebook Workplace 中的 BotFramework 集成

问题描述

我用微软的机器人框架创建了一个机器人。我已经将它部署在 Microsoft Azure 上,我可以在 Microsoft Teams 中使用它。 现在我想将它集成到 Facebook Workplace。 我已经按照 Microsoft 文档中公开的程序进行了安装和运行。 但是当我尝试在工作区界面中与它交谈时,我收到此错误see the error detailed screenshot

Error: Invalid signature on incoming request

如您所见,机器人已收到该消息,但无法对其进行处理。

更具体地说,这是引发此错误代码段: Problematic code

我无法解释,因为如果我在论坛和文档中看到了我红色的内容,问题是请求没有正确签名,但它们直接来自 facebook。

所以你知道我的项目的架构是什么,这里是 package.json 文件

{
    "name": "AppName","version": "1.0.0","description": "Offer an ergonomic interface between Microsoft Teams and our solution","author": "Generated using Microsoft Bot Builder Yeoman generator v4.7.0","license": "MIT","main": "./lib/index.js","scripts": {
        "build": "npm run config && npm run html && tsc --build","lint": "tslint -c tslint.json 'src/**/*.ts'","postinstall": "npm run build && node ./deploymentScripts/webConfigPrep.js","start": "npm run build && node ./lib/index.js","test": "echo \"Error: no test specified\" && exit 1","watch": "nodemon --watch ./src -e ts --exec \"npm run start\"","html": "copyfiles -f src/**/*.html lib/","config": "copyfiles config/* lib/"
    },"repository": {
        "type": "git","url": "https://github.com"
    },"dependencies": {
        "@microsoft/teams-js": "^1.9.0","axios": "^0.21.1","botbuilder": "^4.12.0","botbuilder-dialogs": "^4.12.0","botbuilder-adapter-facebook": "^1.0.11","config": "^3.3.6","dotenv": "^8.2.0","replace": "^1.2.0","restify": "^8.5.1","rxjs": "^6.6.6","vue": "^2.6.12"
    },"devDependencies": {
        "@types/restify": "8.5.1","copyfiles": "^2.4.1","nodemon": "^2.0.7","tslint": "^6.1.3","typescript": "^4.2.3"
    }
}

如果有人以前看过这个或有任何想法或建议,不客气,我完全没有想法......

解决方法

我曾经遇到过同样的问题,原因是秘密参数。我做了一些研究,我在 Botkit repo 中看到了一个问题,建议是:

验证 app_secret 参数是否正确并与 Facebook 开发者门户中的设置 > 基本页面上显示的参数相匹配

如果您从 ABS 通道服务迁移,请注意,一旦迁移,您将无法再将 Bot Framework 模拟器连接到您的机器人应用程序。与模拟器连接将导致无效签名警告。

第一个对我有用,希望这对你也有帮助。

参考:https://github.com/howdyai/botkit/issues/1696 类似帖子:Getting Invalid signature on incoming request with botBuilder adapter for Facebook

,

Facebook 不再接受 Microsoft Azure 集成,因此您必须自己配置 facebook 与机器人托管的集成。 您还必须传入环境变量:

  • FACEBOOK_VERIFY_TOKEN
  • FACEBOOK_APP_SECRET
  • FACEBOOK_ACCESS_TOKEN

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...