azure - Azure Graph API / OneDrive API 访问读取文件(列表和下载)所需的 SPO 意味着什么
问题描述
我曾假设 OneDrive 提供免费的个人存储层,因此对 OneDrive 的 API 访问不应该要求用户拥有 Office 365 订阅......
但是,经过几个小时的调试,直接去找Postman,在尝试调用:
https://graph.microsoft.com/v1.0/me/drive/root/search(q='.obj')?select=name,id,@content.downloadUrl
使用令牌后,返回的错误似乎是用户没有SPO,这似乎意味着需要Office365订阅?
{
"error": {
"code": "BadRequest",
"message": "Tenant does not have a SPO license.",
"innerError": {
"request-id": "270808a8-4763-4ada-a878-e5ff34571c2f",
"date": "2020-02-20T06:08:52"
}
}
}
有没有不需要 Office 就可以通过 API 访问 OneDrive 的方法?
更新,刚买了Office 365……这个错误还是出现……SPO许可到底是什么意思?
解决方案
您使用什么用户上下文连接到Microsoft Graph OneDrive API?该用户是否在https://admin.microsoft.com/中获得了正确许可?
要消除用户访问令牌的问题,您可以转到 Graph Explorer https://aka.ms/ge并使用用户帐户在左侧登录。然后运行这个确切的查询。您需要根据 API 文档同意正确的权限才能调用此 API。
因为您在此处使用 SharePoint 搜索功能,所以这不仅仅是 OneDrive,而是需要的 SharePoint。我相信这是 E3 和 E5 附带的,但我不是许可专家。
该用户能否在 Web 浏览器中访问租户内的根 SharePoint 产品?
推荐阅读
- algorithm - 求解斐波那契数列的非齐次递归关系
- php - php isset 检查中的同一页面发布请求不起作用?
- javascript - 如何在 GitHub 中使用 JavaScript 创建文件?
- outlook - 如何恢复 Outlook 附件和超链接?
- c# - SignalR 需要很长时间才能响应心跳
- javascript - 告诉我在 Next.js 中将 src/pages/api 目录移动到 src/ 的配置
- python - Python:如何创建同时运行的多个线程
- amazon-web-services - 如何通过某个域路由元数据库?
- visual-c++ - 构建库后错误的boost lib版本
- javascript - PHP 脸书网络驱动程序