如何获取网络聊天机器人密钥?
How to get the webchat bot secret keys?
通过以下 Url 我找到了一种提取网络聊天机器人密钥的方法:
https://dev.botframework.com/api/bots/{bot_id}/channels/webchat"
它会 return 一个 JSON 响应,如下所示:
webchat secret keys
当我在浏览器中调用它并在 https://dev.botframework.com/ 上登录时,它运行良好。现在我想用 powershell 编写脚本。
在开始编写脚本之前,我尝试用 Postman 调用它。我的问题是我需要一个令牌(访问令牌?)才能用 Postman 调用它。如果我从浏览器 session 中将 IntercomAuthCookie 抓取到 Postman 中的 headers 中,我会得到预期的结果 like here.
现在我的问题是:API 我可以用哪个获得 IntercomAuthCookie?
我尝试获取 Bearer 访问令牌 here with OAuth on https://login.microsoftonline.com/common/oauth2/v2.0/token, but when I use it on the other request I get a "login expired"
经过数周的大量搜索,我找到了三种获取网络聊天频道密钥的方法。
开发 Botframework 浏览器方法
通过以下 URL 可以得到 JSON 格式:
https://dev.botframework.com/identity/signin?requestUrl=/api/bots/{botId}/channels/webchat
它会询问您的凭据并将您重定向到 https://dev.botframework.com/api/bots/{botId}/channels/webchat.
Azure Cli 方法(不推荐)
在这个postHow can I programmatically obtain the DirectLine secret of a Microsoft Bot Framework chatbot application?的帮助下,我找到了以下命令:
az bot webchat show -n "{botId}" -g "{resourceGroupName}" --with-secrets --subscription "{subscriptionId}"
不要忘记在 运行 上述命令之前登录(使用 "az login" 命令)。
为什么不推荐这种方法?
我意识到在 运行 这个命令之后,它破坏了 Azure 中的 WebChat 通道,我无法让它重新工作。这就是我强烈不推荐使用它的原因。
HTTP GET 请求方法 - 不需要浏览器(最推荐用于脚本)
经过对 Python Azure Cli Bot Service 和 Azure Mgmt Bot Service 源代码的大量研究,我发现了以下请求:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{botId}/channels/WebChatChannel/listChannelWithKeys?api-version=2018-07-12
不要忘记将访问承载令牌添加到请求的授权密钥 header 中。
我测试了所有的方法。一切都按预期进行。
通过以下 Url 我找到了一种提取网络聊天机器人密钥的方法:
https://dev.botframework.com/api/bots/{bot_id}/channels/webchat"
它会 return 一个 JSON 响应,如下所示: webchat secret keys
当我在浏览器中调用它并在 https://dev.botframework.com/ 上登录时,它运行良好。现在我想用 powershell 编写脚本。 在开始编写脚本之前,我尝试用 Postman 调用它。我的问题是我需要一个令牌(访问令牌?)才能用 Postman 调用它。如果我从浏览器 session 中将 IntercomAuthCookie 抓取到 Postman 中的 headers 中,我会得到预期的结果 like here.
现在我的问题是:API 我可以用哪个获得 IntercomAuthCookie?
我尝试获取 Bearer 访问令牌 here with OAuth on https://login.microsoftonline.com/common/oauth2/v2.0/token, but when I use it on the other request I get a "login expired"
经过数周的大量搜索,我找到了三种获取网络聊天频道密钥的方法。
开发 Botframework 浏览器方法
通过以下 URL 可以得到 JSON 格式:
https://dev.botframework.com/identity/signin?requestUrl=/api/bots/{botId}/channels/webchat
它会询问您的凭据并将您重定向到 https://dev.botframework.com/api/bots/{botId}/channels/webchat.
Azure Cli 方法(不推荐)
在这个postHow can I programmatically obtain the DirectLine secret of a Microsoft Bot Framework chatbot application?的帮助下,我找到了以下命令:
az bot webchat show -n "{botId}" -g "{resourceGroupName}" --with-secrets --subscription "{subscriptionId}"
不要忘记在 运行 上述命令之前登录(使用 "az login" 命令)。
为什么不推荐这种方法?
我意识到在 运行 这个命令之后,它破坏了 Azure 中的 WebChat 通道,我无法让它重新工作。这就是我强烈不推荐使用它的原因。
HTTP GET 请求方法 - 不需要浏览器(最推荐用于脚本)
经过对 Python Azure Cli Bot Service 和 Azure Mgmt Bot Service 源代码的大量研究,我发现了以下请求:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.BotService/botServices/{botId}/channels/WebChatChannel/listChannelWithKeys?api-version=2018-07-12
不要忘记将访问承载令牌添加到请求的授权密钥 header 中。
我测试了所有的方法。一切都按预期进行。