【发布时间】:2022-01-19 16:54:06
【问题描述】:
我正在尝试获取一个 accessToken 以在我自己定制的机器人中使用。我的请求基于我正在尝试构建的以下内容:
具体是这个要求:
POST https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id=MICROSOFT-APP-ID&client_secret=MICROSOFT-APP-PASSWORD&scope=https%3A%2F%2Fapi.botframework.com%2F.default
我在弄清楚我的 client_secret 和 client_id 到底是什么以及我应该从哪里提取它时遇到了问题。我尝试了两种不同的方法,但越深入,我就越困惑。
首先,我尝试使用从 Visual Studio Teams toolkit 创建的基本 hello world 机器人,这是一种非常 hacky 的方法,但我只是将 localsetting 文件中定义的 botEndpoint 更改为指向我的自定义机器人正在侦听的服务。
"bot": {
"skipNgrok": true,
"botDomain": "domain",
"botEndpoint": "bot endpoint",
"botId": "id",
"botPassword": "password",
"botAadObjectId": "AadId"
}
然后我刚刚发布了这个机器人,我可以看到每个请求,但是当我尝试使用此处生成的 botPassword 和 botId 来尝试请求 accessToken 时,我只收到 400 Bad request 错误作为响应。
从这里我尝试将客户端 ID 替换为我可以在 Azure 应用注册中看到的以下 ID:应用程序(客户端)ID/对象 ID/目录(租户)ID。
对于其中的每一个,我还尝试向应用注册添加一个新的密钥,并在工具包生成的密钥上使用这个密钥,我只收到 400 或 404 错误,其中 404 来自密钥我在应用程序注册中生成的(我假设这与它使用的特殊字符有关)
从这里我尝试将 register a bot 作为 azure 内部的资源,并希望从那里开始,而不是让工具包为我生成它。我尝试在这里使用 Microsoft App ID 和 App Tenant ID 作为客户端 ID,同时还生成新的密钥并使用它们,但我仍然无法得到回复。
我这里有什么明显的遗漏吗?
【问题讨论】:
-
@AP01 正确,看看是否正确。
-
如果这解决了您的问题,请接受答案,以便其他开发人员也能更好地了解。
标签: azure botframework microsoft-teams