如何获取网络聊天机器人密钥?

     2023-03-10     303

关键词:

【中文标题】如何获取网络聊天机器人密钥?【英文标题】:How to get the webchat bot secret keys? 【发布时间】:2018-12-17 16:21:30 【问题描述】:

通过以下网址,我找到了一种提取网络聊天机器人密钥的方法:

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?

我尝试在 https://login.microsoftonline.com/common/oauth2/v2.0/token 上使用 OAuth 获取承载访问令牌 here,但是当我在另一个请求中使用它时,我得到一个“login expired”

【问题讨论】:

我什至无法让浏览器方法(登录 dev.botframework.com 后)工作。 (它甚至没有向我显示“键”键)。您是否采取了进一步的措施来使该部分正常工作? 有一种获取密钥的方法。但是目前有一个错误,如果您尝试获取密钥,则会删除当前的 webchatchannel 配置。修复错误后我会更新并确认方法。 【参考方案1】:

经过数周的大量搜索,我找到了三种获取 WebChat 频道密钥的方法。


Dev 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 方法(不推荐)

在How 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

不要忘记在请求的授权密钥标头中添加一个访问承载令牌。


我测试了所有方法。一切都按预期进行。

【讨论】:

嗨@jyfa。那太棒了。是的,我也有这些方法,还有 powershell。但;请注意我之前提到的错误。如果您检索密钥,可能会导致它们被删除或破坏网络聊天频道。你的频道还在吗?它是否在 bot azure Blade 的频道视图中显示“正在运行”? 正如我在回答中提到的,由于您提到的错误,不建议使用第二种方法。你是对的,它会破坏 WebChat 频道,并且没有办法让频道回到“正在运行”状态。但是最后一种方法(我将它与 powershell curl 命令一起使用)可以在不破坏通道的情况下工作。

使用密钥获取 *** Royale 节点

...2-01-2402:04:00【问题描述】:我正在尝试制作一个不和谐的机器人,如果你在聊天中输入-cr,它会接受用户的参数(作为***Royale玩家的玩家标签),然后使用包node-fetch来接收我的数据指定的端点。我经常遇到reason:\'accessDenied\',messa... 查看详情

如何使用电报内联机器人获取组 ID 和聊天 ID?

】如何使用电报内联机器人获取组ID和聊天ID?【英文标题】:HowdoIgetthegroupIDandchatIDwithtelegraminlinebot?【发布时间】:2017-01-0603:03:32【问题描述】:你们中有人知道@like电报机器人是如何工作的吗?当我使用内联在群组中调用它,... 查看详情

如何在 Android 上获取 FB Chat 的 API 密钥和会话密钥和会话密钥

】如何在Android上获取FBChat的API密钥和会话密钥和会话密钥【英文标题】:HowtogettheAPIkey&sessionkey&sessionsecretkeyforFBChatonAndroid【发布时间】:2012-07-2313:23:24【问题描述】:我正在尝试在android中为Facebook构建一个聊天应用程序。... 查看详情

使用密钥获取json时如何发出错误

】使用密钥获取json时如何发出错误【英文标题】:Howtoemiterrorwhengetjsonwithkey【发布时间】:2017-04-0516:35:42【问题描述】:我正在使用RxAlamorefire在我的应用程序中处理网络任务。我的问题是:当我发出请求并返回json。如果json有一... 查看详情

如何从本地机器\软件中删除密钥?

】如何从本地机器\\\\软件中删除密钥?【英文标题】:HowdoIremovethekeysfromLocalmachine\\SOFTWARE?如何从本地机器\\软件中删除密钥?【发布时间】:2019-03-2714:20:39【问题描述】:我尝试通过C#脚本删除测试密钥。以下代码是我的脚本,... 查看详情

如何在多台机器上使用相同的 ssh 密钥?

】如何在多台机器上使用相同的ssh密钥?【英文标题】:Howdoiusesamesshkeyacrossmultiplemachines?【发布时间】:2020-09-1304:20:04【问题描述】:我有一个私人Github存储库,我想使用相同的ssh密钥集从两台不同的Linux机器访问对于第一台机... 查看详情

如何获取工作日工人/员工网络资料 URL?

...又名员工)的Web配置文件URL。用例是我正在构建一个聊天机器人来检索用户信息,并且我希望能够深度链接到工作人员(员工)的网络配置文件。问题是我不能执行以下任一操作:从AP 查看详情

如何在 Azure 机器学习服务管道中使用密钥

】如何在Azure机器学习服务管道中使用密钥【英文标题】:HowtousesecretkeysinAzureMachineLearningServicepipelines【发布时间】:2019-06-0404:18:39【问题描述】:我正在使用Azure机器学习服务和pipelinefunctionality对我的机器学习模型进行数据准备... 查看详情

我如何获得注册密钥的真实路径?

】我如何获得注册密钥的真实路径?【英文标题】:Howdoigetthetruepathtoaregkey?【发布时间】:2011-01-0121:16:36【问题描述】:如果您在64位机器上运行32位应用程序(我使用的是windows7)并且您编写此代码RegistryKeykey=Registry.LocalMachine.Op... 查看详情

从 IBM Watson Assistant 获取我的聊天机器人中的选项列表

】从IBMWatsonAssistant获取我的聊天机器人中的选项列表【英文标题】:GettinglistofoptionsinmychatbotfromIBMWatsonAssistant【发布时间】:2019-11-2120:07:56【问题描述】:imageofibmwatsonandoptions(2ndimage)如何从IBMWatsonAssistant获取聊天机器人中的选项... 查看详情

Docker TLS - 如何在本地机器上创建密钥

】DockerTLS-如何在本地机器上创建密钥【英文标题】:DockerTLS-Howtocreatekeyonlocalmachine【发布时间】:2020-02-1214:10:28【问题描述】:前置知识:所以我自己开始使用docker并将其安装在我的服务器上并启用了TLS。我遵循了这个教程:htt... 查看详情

如何防止 Firebase 上的匿名密钥?

】如何防止Firebase上的匿名密钥?【英文标题】:HowtopreventanonymouskeysonFirebase?【发布时间】:2022-01-1018:17:27【问题描述】:我正在RaspberryPI3、OpenelecOS平台上开发一个聊天项目。尝试写入数据库并获取不需要的匿名密钥。用黄色标... 查看详情

如何获取密钥然后删除未关联到数组的密钥? [复制]

】如何获取密钥然后删除未关联到数组的密钥?[复制]【英文标题】:Howtogetthekeysandthenremovethekeysnotassociatedtoanarray?[duplicate]【发布时间】:2021-05-1904:22:03【问题描述】:我想获取项目的值,然后删除与列无关的键下面是我的代码v... 查看详情

UserDefaults 如何获取自己保存的密钥?

】UserDefaults如何获取自己保存的密钥?【英文标题】:UserDefaultsHowcanIgetmyownsavedkeys?【发布时间】:2021-08-0715:20:58【问题描述】:我尝试了这段代码,但它为我带来了除我之外的所有密钥。如何获取自己保存的密钥?print("UD:\\(User... 查看详情

如何从加密令牌中获取密钥?

】如何从加密令牌中获取密钥?【英文标题】:HowdoIgetthesecretkeyfromanencryptedtoken?【发布时间】:2020-02-2903:49:47【问题描述】:我有一个节点js应用程序。我需要从生成的令牌中获取密钥,以使用我的单独验证方法。是否有任何解... 查看详情

如何获取 NSDictionary 的密钥 [重复]

】如何获取NSDictionary的密钥[重复]【英文标题】:HowtogetkeyofNSDictionary[duplicate]【发布时间】:2016-08-1204:37:03【问题描述】:我正在使用Firebase并获取快照,当我打印它时,我得到了这个:"-KOx03Q1f1Tl9AiWxNlg"=message=".";senderId=B6WI1xkEBXd4... 查看详情

Discord bot 无法访问 Google Sheets 获取错误请求缺少有效的 API 密钥

...ey【发布时间】:2021-05-1522:03:20【问题描述】:我的Discord机器人尝试访问GoogleSheetsAPIv4.0时遇到问题。我希望它读取、写入和 查看详情

如何获取注册密钥 Firebase?

】如何获取注册密钥Firebase?【英文标题】:HowtogetregistrationkeyFirebase?【发布时间】:2017-09-1508:21:59【问题描述】:Firebase允许我们通过发出POST请求通过我们自己的应用程序发送通知消息。本教程提供了如何提出此请求的说明。... 查看详情