我在Azure帐户上部署了一个用Node.js编写的Cortana bot。机器人使用Cortana通道和#34;连接服务"打开(所以我可以使用Azure Active Directory中的帐户登录机器人)。登录工作正常。
我的问题是,现在我不知道如何在我的机器人中获取有关已登录用户的信息(例如电子邮件地址)。
我猜我需要从会话数据中获取一些令牌,然后发送一个API请求,要求Azure提供用户的数据?
Node.js有这个botauth示例,但运行它的说明已经过时了。
答案 0 :(得分:0)
虽然我没有关于如何使用Node执行此操作的示例,但是C#中的解决方案可能会有所帮助吗?
执行此操作的方法是检查来自[[('John','1980')('Mike','1975')],
[('John','1980')('Mike','1980')],
[('John','1975')('Mike','1975')],
[('John','1975')('Mike','1980')]]
对象的entities
集合到控制器。由于这是对机器人的每个请求的一部分,因此您可以随时执行此操作。
在Activity
集合中,Cortana会输入一个entities
条目,其中包含由连接服务的身份验证流程产生的令牌。如果您使用连接服务来访问Microsoft服务(也称为登录Live,MSA等),您可以转动此令牌并从Microsoft Graph请求有关该用户的信息。
在C#中,它看起来像这样:
authorization
希望有所帮助!如果你想玩你从图表的各个租户那里得到的东西,Graph Explorer是一个很好的方法。