我将onedrive集成到我的应用程序中以获取用户onedrive中的文件。我在https://apps.dev.microsoft.com/#/appList创建了一个应用程序。 以下是获取登录窗口并获取用户身份验证的URL。
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id={clientID}&scope=Files.ReadWrite.All offline_access&response_type=code&redirect_uri=http://localhost:8080/onedrive/code
onedrive传递代码并且我正在捕获它并使用以下请求我也可以获得access_token和refresh_token。
POST https://login.microsoftonline.com/common/oauth2/v2.0/token
client_id={client_id}&redirect_uri=http://localhost:8080/onedrive/code&client_secret={client_secret}&code={code}&grant_type=authorization_code
然后我将刷新令牌存储在我的数据库中。
后来 当我想在用户onedrive中获取文件时,我发送刷新+令牌并获得如下所示的access_toke。
POST https://login.microsoftonline.com/common/oauth2/v2.0/token
client_id=client_id}&redirect_uri=http://localhost:8080/onedrive/code&client_secret={client_secret}&&refresh_token=&refresh_token_stored_in_db}&grant_type=refresh_token
我从上面获取访问令牌并使用它来获取用户onedrive中的文件列表,如下所示。 (这是正确的API调用吗?)
GET https://api.onedrive.com/v1.0/drive/root/children
Authorization: bearer {access_token}
问题出在这个过程中。答案是,
{"错误":{"代码":"未经身份验证","消息":"身份验证失败& #34;}}
有人可以告诉我我的代码中有什么问题。提前谢谢。