获取 Botbuilder 登录按钮取消响应
Get Botbuilder Signin button cancel response
人群,
我正在努力解决对 Teams SSO 中被拒绝的同意作出反应的问题。
我的解决方案如下所示:
- 我有一个网络服务器执行一些用打字稿编写的对话逻辑,可通过 ngrok 访问
- 我有一个 Azure 机器人
- 我有 Azure AD 机器人注册
请求权限时,我正在创建一个作为附件发送的 oauthcard,如下所示:
await CardFactory.oauthCard(
myConnectionName,
"Title",
"text",
signInLink,
{
id: this.accessToken,
uri: `api://botid-${myAppId}`
}
);
这工作正常,用户收到一个小提示“我们需要请求额外的权限。您应该只需要为 MyApplication 执行一次”,带有两个按钮“取消”和“继续”。
继续工作正常,网络服务器收到响应,可以获得 GraphAPI 的令牌并使用所有很酷的功能,但是取消按钮呢?
不幸的是,如果用户单击“取消”,我收到的反馈恰好为 0。你知道当用户点击取消时是否有办法得到确认?
我已经添加了一个适配器并使用 adapter.processActivity() 检查了每个 activity,但是没有 activity 或网络请求用于取消。
知道如何处理吗?我需要以某种方式为取消按钮添加不同的 link 吗?我发送的附件如下所示:
{
"contentType":"application/vnd.microsoft.card.oauth",
"content":{
"buttons":[
{
"type":"signin",
"title":"Title",
"value":"https://token.botframework.com/api/oauth/signin?signin=mySignInId"
}
],
"connectionName":"myConnection",
"tokenExchangeResource":{
"id":"myAccessToken",
"uri":"api://botid-myAppId"
},
"text":"text"
}
}
知道如何接收响应或获取此事件吗?
提前致谢!
编辑:
这应该由 Teams 客户端处理,如果我们将此控件传递给 Bot,请求将进入循环,我们希望避免这种情况。
例如,用户与 Bot 交互 -> 客户端显示同意弹出 -> 用户取消 -> Bot 再次初始化 Auth 请求 -> 客户端再次显示弹出 -> ...
所以,这是设计使然。当用户尝试再次与 Bot 交互时,Teams 客户端将显示同意弹出窗口。
人群,
我正在努力解决对 Teams SSO 中被拒绝的同意作出反应的问题。
我的解决方案如下所示:
- 我有一个网络服务器执行一些用打字稿编写的对话逻辑,可通过 ngrok 访问
- 我有一个 Azure 机器人
- 我有 Azure AD 机器人注册
请求权限时,我正在创建一个作为附件发送的 oauthcard,如下所示:
await CardFactory.oauthCard(
myConnectionName,
"Title",
"text",
signInLink,
{
id: this.accessToken,
uri: `api://botid-${myAppId}`
}
);
这工作正常,用户收到一个小提示“我们需要请求额外的权限。您应该只需要为 MyApplication 执行一次”,带有两个按钮“取消”和“继续”。
继续工作正常,网络服务器收到响应,可以获得 GraphAPI 的令牌并使用所有很酷的功能,但是取消按钮呢?
不幸的是,如果用户单击“取消”,我收到的反馈恰好为 0。你知道当用户点击取消时是否有办法得到确认?
我已经添加了一个适配器并使用 adapter.processActivity() 检查了每个 activity,但是没有 activity 或网络请求用于取消。
知道如何处理吗?我需要以某种方式为取消按钮添加不同的 link 吗?我发送的附件如下所示:
{
"contentType":"application/vnd.microsoft.card.oauth",
"content":{
"buttons":[
{
"type":"signin",
"title":"Title",
"value":"https://token.botframework.com/api/oauth/signin?signin=mySignInId"
}
],
"connectionName":"myConnection",
"tokenExchangeResource":{
"id":"myAccessToken",
"uri":"api://botid-myAppId"
},
"text":"text"
}
}
知道如何接收响应或获取此事件吗?
提前致谢!
编辑:
这应该由 Teams 客户端处理,如果我们将此控件传递给 Bot,请求将进入循环,我们希望避免这种情况。
例如,用户与 Bot 交互 -> 客户端显示同意弹出 -> 用户取消 -> Bot 再次初始化 Auth 请求 -> 客户端再次显示弹出 -> ...
所以,这是设计使然。当用户尝试再次与 Bot 交互时,Teams 客户端将显示同意弹出窗口。