我使用sharepoint作为云存储。我现在在那里有一些。pdf文件,并向公众开放。所以我可以在匿名窗口通过这个url打开文件。
我需要在另一个系统(Salesforce)中使用当前文件,并且我需要进行api调用以获取这些文件(base64)。
我通过这个端点获得了access_token: https://accounts.accesscontrol.windows.net
邮差请求图片
这是文件的公共url: https://lpnu-my.sharepoint.com/personal/marian_lyzhychka_mtrte_2021_edu_lpnu_ua/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fmarian%5Flyzhychka%5Fmtrte%5F2021%5Fedu%5Flpnu%5Fua%2FDocuments%2FWhoMovedMyCheese%281%29%2Epdf&parent=%2Fpersonal%2Fmarian%5Flyzhychka%5Fmtrte%5F2021%5Fedu%5Flpnu%5Fua%2FDocuments&ga=1
当我尝试发送GET请求到这个端点并设置接收到的Access_token为承载令牌时,我收到401(未经授权)。
我可以得到文件,如果我从开发人员工具得到cookie,并设置为头。但是对于每个文件cookie是不同的,它只适用于我的测试。
你能解释一下我做错了什么吗?以及如何通过请求(JavaScript)访问公共文件。谢谢你!根据我的研究和测试,在生成access_token
时,是否向外接程序授予了权限,授予了哪些权限?
请尝试授予Full Control
权限,例如:在"权限请求XML"框中输入以下XML:
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/tenant" Right="FullControl" />
</AppPermissionRequests>
如果你想在SharePoint中获取文件,你可以使用以下Rest API:
GET https://{site_url}/_api/web/lists/GetByTitle('Test')/items
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
如果你想获得一个特定的文件,你可以使用下面的REST API:
GET https://{site_url}/_api/web/lists/GetByTitle('Test')/items({item_id})
Authorization: "Bearer " + accessToken
Accept: "application/json;odata=verbose"
更多参考信息:
Rest API:使用Rest
处理列表和列表项生成访问令牌并访问SharePoint:在4步中使用postman工具访问SharePoint在线数据
参考类似的问题:如何使用访问令牌在Sharepoint文件的GET请求?
注:微软提供这些信息是为了方便您。这些网站不受微软控制。微软不能对在那里找到的任何软件或信息的质量、安全性或适用性作出任何陈述。在从上述链接获取任何建议之前,请确保您完全了解风险。