我正在为平板电脑开发一个Unity应用程序,该应用程序的员工日历信息从Microsoft Graph收集并显示在屏幕上。但是我在将用户登录到MS Graph而没有重定向到使用Web浏览器时遇到问题。
当前,我正在通过https://login.microsoftonline.com/tenant_id_here/oauth2/token连接到我们应用程序的服务器端点,但找不到适合用户登录的有效方法,这是需要日历信息的必要条件。
本博客中流程2的grant_type密码应该完全符合此要求:http://codematters.tech/getting-access-token-for-microsoft-graph-using-oauth-rest-api/但是,即使用户名和密码正确,使用grant_type密码也始终会返回错误代码:
AADSTS70002:验证凭据时出错。 AADSTS50126:无效 用户名或密码
搜索答案后,似乎Grant_type密码已被停用: https://github.com/microsoftgraph/microsoft-graph-docs/issues/2657#issuecomment-390036447
在这种情况下,如何使用用户名和密码为用户获取令牌?
现在,我确实已经找到了一个MS Graph SDK(https://github.com/microsoftgraph/msgraph-sdk-dotnet),它可以 解决此问题,但遗憾的是,它正在Unity不支持的更高版本.NET上运行。
作为参考,我尝试创建的应用将具有一个简单的工作流,如下所示:
用户通过应用登录并获取令牌>应用使用令牌向Office365询问用户日历信息>应用显示日历信息,并刷新令牌
有人对此有想法吗?
答案 0 :(得分:0)
根据您的描述,我假设您要使用Unity使用用户名和密码登录Microsoft Graph。
有很多方法可以获取访问令牌以连接Microsoft Graph。
根据您的描述,我们可以使用REST API对用户进行身份验证。
有关更多信息,请参阅this document。