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