在以下网址中,我找到了一种提取网络聊天机器人秘密密钥的方法:
https://dev.botframework.com/api/bots/ {bot_id} / channels / webchat“
它将返回JSON响应,如下所示: webchat secret keys
当我在浏览器中调用它并登录https://dev.botframework.com/时,此方法效果很好。现在,我想使用powershell编写脚本。 在开始编写脚本之前,我尝试使用Postman进行调用。我的问题是我需要一个令牌(访问令牌?)才能用Postman调用它。如果我从浏览器会话中获取IntercomAuthCookie到Postman的标题中,则会得到预期的结果like here。
现在我的问题是:我可以通过哪个API获取IntercomAuthCookie?
我尝试使用here上的OAuth来获得Bearer访问令牌https://login.microsoftonline.com/common/oauth2/v2.0/token,但是当我在其他请求上使用它时,我得到的是“ login expired”
答案 0 :(得分:1)
经过数周的搜索,我发现了三种获取WebChat频道密钥的方法。
使用以下URL,您可以JSON格式获取它:
https://dev.botframework.com/identity/signin?requestUrl=/api/bots/ {botId} / channels / webchat
它将询问您有关凭证的信息,并将您重定向到https://dev.botframework.com/api/bots/ {botId} / channels / webchat。
借助本文How can I programmatically obtain the DirectLine secret of a Microsoft Bot Framework chatbot application?,我发现了以下命令:
az bot网络聊天节目-n“ {botId}” -g“ {resourceGroupName}” -含秘密 --subscription“ {subscriptionId}”
在运行上述命令之前,请不要忘记登录(使用“ az login”命令)。
为什么不推荐这种方法?
我意识到运行此命令后,它破坏了Azure中的WebChat通道,因此我无法将其重新投入使用。这就是为什么我强烈不建议使用它的原因。
在对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
也不要忘记将访问承载令牌添加到请求的授权密钥标头中。
我测试了所有方法。一切都按预期进行。