对于一个项目,我需要显示一些存储在Personal OneDrive上的文件。
我无法使用经典的OAuth2身份验证,我需要以应用程序身份而不是用户身份进行身份验证,如本页中所述:https://docs.microsoft.com/en-us/graph/auth-v2-service
但是adminConsent似乎仅用于企业订阅。 使用个人OneDrive有什么方法吗?
答案 0 :(得分:0)
我徒劳地在个人OneDrive中声明一个共享点应用程序,但这似乎是企业功能。
您是否尝试生成一个嵌入文件夹的链接?选择OneDrive文件夹时,可以使用导航菜单上的图标来完成此操作。
我看不到任何通过声明应用程序共享文件的解决方案,我认为这在Personal OneDrive中受到限制。我确实在企业One Drive中进行了尝试,看来我可以使用maginc链接声明一个应用程序
/_layouts/15/appregnew.aspx
希望您会找到解决方案
答案 1 :(得分:0)
我终于找到了具有代码流认证和 offline_access作用域的解决方案。 使用这种方法,管理员必须连接一次才能获得刷新令牌,该刷新令牌可在以后随时获取access_token来使用。
答案 2 :(得分:0)
我找到了一个不同的解决方案,该解决方案似乎与您的解决方案并不相同,但可能会有所帮助。如果您遵循有关创建守护程序应用程序的文档,则可以在具有以下条件的情况下创建访问令牌:
有关守护程序应用程序的信息,请参见this link。 this page上也有一些示例,说明了如何实际发出请求。在该页面上,这是HTTP请求正文。
POST /{tenant}/oauth2/v2.0/token HTTP/1.1 //Line breaks for clarity.
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded
client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials
您将获得如下响应。然后,您可以使用access_token
发出API请求。
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "ACCESS_TOKEN"
}
您可以找到Python代码example here。