在 Microsoft bot Framework 中跨渠道对用户进行身份验证
Authenticate user across channels in Microsoft bot Framework
我想构建一个可以在多个渠道(如 Skype、Teams、SMS 等)上使用的机器人。为此,我正在使用 BotBuilder SDK。我想通过这些渠道对用户进行身份验证。在不要求他通过网页登录的情况下,我该怎么做?由于我已经登录应用程序(比如 Skype),我如何根据上下文获取电子邮件地址或号码并隐式验证?
如果我选择使用 OAuth 执行此操作,我会要求用户在每次对话时都登录,我认为这是不正确的方法
快速回答:
每个渠道都是特定的,它们不提供获取用户信息的唯一方式。
您不会拥有跨渠道的通用信息,例如电子邮件地址或 ID,因此您将不得不构建一些东西来做您想做的事情(可能询问用户是唯一的方法...)。
详情
关于您在某些频道中获得的内容的更多详细信息:
- Facebook 信使:
"from": { "id": "1613014XXXXXXXXX", "name": "My Facebook Name" }
ID 是一个 PSID
,用于页面范围 ID。它不是您在用户配置文件的 URL 中拥有的用户 ID,它特定于托管您的 bot
的 Facebook 页面
- 松弛:
"from": { "id": "U54xxxxxx:T53xxxxxx", "name": "nicolas" }
ID 由 Slack 的用户 ID 和 Slack 的团队 ID 串联而成。该名称是我的 Slack 的用户名
- Skype:
"from": { "id": "29:1DwlGVzj.....", "name": "My Skype Name" }
此 ID 特定于您的机器人,它是一个散列,但生成方式未知(非开源)
- Skype 商务版:
"from": { "id": "nicolas-r@myCompany.com", "name": "My SkypeForBusiness Name" }
这里更简单...
- 微软团队:
"from": { "id": "29:1ar5DN....", "name": "Nicolas R" }
这里类似于我们在 Skype 上找到的,ID 是特定于您的 bot 的唯一 ID,它是一个哈希,但它的生成方式未知(未开源)
- Twilio 短信:
"from": { "id": "+33600000000", "name": "+33600000000" }
ID为用户的phone号
==> 如您所见,要获得独特的东西需要做很多工作
我想构建一个可以在多个渠道(如 Skype、Teams、SMS 等)上使用的机器人。为此,我正在使用 BotBuilder SDK。我想通过这些渠道对用户进行身份验证。在不要求他通过网页登录的情况下,我该怎么做?由于我已经登录应用程序(比如 Skype),我如何根据上下文获取电子邮件地址或号码并隐式验证?
如果我选择使用 OAuth 执行此操作,我会要求用户在每次对话时都登录,我认为这是不正确的方法
快速回答:
每个渠道都是特定的,它们不提供获取用户信息的唯一方式。
您不会拥有跨渠道的通用信息,例如电子邮件地址或 ID,因此您将不得不构建一些东西来做您想做的事情(可能询问用户是唯一的方法...)。
详情
关于您在某些频道中获得的内容的更多详细信息:
- Facebook 信使:
"from": { "id": "1613014XXXXXXXXX", "name": "My Facebook Name" }
ID 是一个 PSID
,用于页面范围 ID。它不是您在用户配置文件的 URL 中拥有的用户 ID,它特定于托管您的 bot
- 松弛:
"from": { "id": "U54xxxxxx:T53xxxxxx", "name": "nicolas" }
ID 由 Slack 的用户 ID 和 Slack 的团队 ID 串联而成。该名称是我的 Slack 的用户名
- Skype:
"from": { "id": "29:1DwlGVzj.....", "name": "My Skype Name" }
此 ID 特定于您的机器人,它是一个散列,但生成方式未知(非开源)
- Skype 商务版:
"from": { "id": "nicolas-r@myCompany.com", "name": "My SkypeForBusiness Name" }
这里更简单...
- 微软团队:
"from": { "id": "29:1ar5DN....", "name": "Nicolas R" }
这里类似于我们在 Skype 上找到的,ID 是特定于您的 bot 的唯一 ID,它是一个哈希,但它的生成方式未知(未开源)
- Twilio 短信:
"from": { "id": "+33600000000", "name": "+33600000000" }
ID为用户的phone号
==> 如您所见,要获得独特的东西需要做很多工作