我正在尝试从Office 365企业版帐户中检索文件。
按照以下说明操作:
https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx
我已经能够为我的应用程序成功获取访问令牌。
但是,当我尝试使用令牌进行API调用时,我收到错误
"https://[tenant redacted]-my.sharepoint.com/_api/v2.0/drive/ - 401: {"error":"invalid_client","error_description":"Invalid audience Uri 'http:\/\/[redacted]-spreadsheet-test-webapi.[tenant url redacted].com\/'."}
我对sharepoint URL的调用是一个简单的GET请求,标题设置如下:
headers = {
'User-Agent' : 'python_tutorial/1.0',
'Authorization' : 'Bearer {0}'.format(access_token),
'Accept' : 'application/json',
}
我已确认我使用的资源URI与Active Directory配置中的App ID URI匹配,并且我已委派了相应的sharepoint权限(在所有网站集中读取和写入项目,读取和写入用户文件) 到应用程序。
我一直在尝试各种API端点,不同的"资源"参数值,并多次重读各种文档。
我也可以通过Graph API发出请求,但它不具备我需要的功能(用户onedrive中的访问/更新文件)。
不确定我错过了什么,我们将不胜感激。
答案 0 :(得分:1)
我有同样的问题。
我使用OneDrive for Business API(而不是office 365管理API)来下载\上传文件,这意味着您在检索访问令牌时提供的resource
参数应为:
https://[tenant redacted]-my.sharepoint.com
请尝试使用JWT解码器打开访问令牌(格式为JWT
),以验证受众群体(我使用online JWT decoder这样做,您在下面查看的参数{ {1}} payload
}是你所期待的。