问题标签 [microsoft-graph-files]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
157 浏览

c# - Microsoft Graph 在尝试访问共享的一个笔记项目时给出“编码共享 URI 中的站点无效”

我无法让 Microsoft graph OneDrive Share API 处理从个人 Microsoft 帐户共享的 OneNote 文档。https://1drv.ms/u/s!{text}共享个人 Microsoft 帐户生成的 OneNote 文档时会生成该格式的 URL 。但是我无法使用 Microsoft Graph API。以下代码引发此错误:

C# 控制台应用程序代码:

据我从文档中可以看出,这应该可行,任何帮助表示赞赏。

0 投票
0 回答
48 浏览

copy - 当我在驱动器中提供无效的 parentReference.id 时,复制/移动项目 api 不会引发异常

当我们在驱动器中提供无效的 ParentReference.id 时,移动和复制 api 都会成功。它正在将文件复制到与源项目相同的文件夹中。预期行为:它应该抛出无效的 parentReferece.id 错误。当我们提供无效的 parentReference.path 时,此功能可以正常工作。

复制项目:发布https://graph.microsoft.com/v1.0/drives/b!dckkz8p7EkKltFwLt5o0QJ6VxtVc1UlOlv0XvR1bhLAo3oh17BLfTIZmGKhBkrry/root:/home/new-item.jpg:/microsoft.graph.copy

{'name':'test5.jpg','parentReference':{'driveId':'b!dckkz8p7EkKltFwLt5o0QJ6VxtVc1UlOlv0XvR1bhLAo3oh17BLfTIZmGKhBkrry','id':'fgdftgarsgdreg'}}

移动项目:补丁https://graph.microsoft.com/v1.0/drives/b!dckkz8p7EkKltFwLt5o0QJ6VxtVc1UlOlv0XvR1bhLAo3oh17BLfTIZmGKhBkrry/root:/home/new-item.jpg

{'name':'test6.jpg','parentReference':{'id':'fgdftgarsgdreg'}}

0 投票
0 回答
46 浏览

android - 使用 microsoft graph uploadSession 上传文件时遇到任意 Unexpected 403 消息

我有一个使用分块上传会话将图片文件上传到共享点文件夹的 android 应用程序。通常这进展顺利,但突然(突然)我收到 403 禁止消息。这可能发生在尝试的中间,其中 1-5 是可以的,1 是 403,后续上传是可以的。文件没有任何差异(每个大约 400 kb),相同的文件夹,每次上传都会获得新的 accessToken(如果存在)。

其他任何人都有相同的经验,或者 MsGraph 中是否有任何(已知/未知)错误?

使用微软依赖:

代码片段 (kotlin)

上传会话:

访问令牌功能:

...或者我是否以错误的方式使用该函数(奇怪,因为它在 85% 的尝试中都有效)。

RG

0 投票
1 回答
166 浏览

javascript - 无法检索用户的 mysite URL OneDrive 资源管理器 javascript 问题

我对 onedrive explorer 有一些奇怪的问题:

https://github.com/OneDrive/onedrive-explorer-js

我已经配置了我的应用凭据,添加了权限:

Files.Read Files.Read.All offline_access profile Sites.Read.All User.Read

并得到这个错误:

https://graph.microsoft.com/v1.0/me/drive/root?expand=thumbnails,children(expand=thumbnails(select=large)) 502 错误网关

附加错误文本:

无法检索用户的 mysite URL。

我尝试了 3 个不同的帐户。

此外,在图形资源管理器上,我有一个错误:必须经过身份验证才能使用“/drive”语法(它提供了我的个人资料详细信息,仅此而已)来自 -

https://developer.microsoft.com/en-us/graph/graph-explorer

有人可以让我知道可能是什么问题吗?

谢谢 !

0 投票
0 回答
779 浏览

microsoft-graph-api - Microsoft Graph Api、Onedrive 或 Sharepoint:如何获取当前用户的读取或授权角色

如何使用 MS Graph Api 获取文件夹(或文件)的当前用户权限角色?

我尝试:https://graph.microsoft.com/[v1.0 或 beta]/drives/[driveId]/items/[itemId]/permissions

但是除了所有者之外的所有人的角色数组都是空的......

如果它可以在文件夹中读取或写入,我想向用户显示一个特定的图标。

谢谢

--编辑1--

用户没有对该文件夹的直接权限,但他在具有读取角色的安全组中。

用户可以读取(打开)该文件夹中的任何信息,我只需要知道他是否可以在文件夹中读写(或不)。

当我尝试在没有良好权限的情况下写入时,我收到了 403 错误,我想知道“之前”用户无法在该文件夹上写入的错误..

--编辑2--

我尝试了文档所说的所有内容:https ://docs.microsoft.com/en-us/graph/api/permission-get?view=graph-rest-1.0&tabs=http

GET /drives/{drive-id}/items/{item-id}/permissions/{perm-id} => 角色为空

GET /groups/{group-id}/drive/items/{item-id}/permissions/{perm-id} => 安全组没有任何驱动器

GET /me/drive/items/{item-id}/permissions/{perm-id} => 项目(文件夹)不在用户驱动器中

GET /sites/{site-id}/drive/items/{item-id}/permissions/{perm-id} => 这不是一个共享点站点

GET /users/{user-id}/drive/items/{item-id}/permissions/{perm-id} => 角色为空

我不明白的是,我可以毫无问题地读取、列出、添加和删除文件(如果我有写角色),但我看不到角色列表。

-- 编辑 3 --

如果你想重现 pb 傻瓜这个:

  • 在 Azure Active Directory (AAD) 中创建一个用户,向其中添加一个名为“User1”的 Microsoft Office 365 许可证(在我的业务案例中)

  • 在其中创建一个名为“共享”的 Onedrive for Business 文件夹

  • 在 AAD 中创建一个安全组(让它命名为“Readers”)

  • 与“读者”组共享上一个文件夹并将其设为只读(在我的情况下,我使用 onedrive 在线站点来执行此操作)

  • 在 AAD 中创建名为“User2”的其他用户(有或没有许可证)

  • 将其添加到“读者”组

现在,转到Graph Explorer并在输入文本框中输入此 url:

https://graph.microsoft.com/v1.0/drives/[User1的driveId]/items/[“共享”文件夹的itemId]/Permissions

你应该得到这个结果:

}

你可以看到,第一个角色数组是空的,但所有者角色数组不是..

0 投票
0 回答
74 浏览

microsoft-graph-api - 如何确定调用者是否有权使用 MSGraph API 编辑 OneDrive 文件

使用 MSGraph API 时确定文件在 OneDrive 上的访问权限的正确方法是什么?具体来说,我如何判断调用者是否可以编辑文件?

我使用了列表权限 API,并获得了一组权限对象。文档指出:

权限集合包括潜在的敏感信息,可能并非对每个调用者都可用。

  • 对于该项目的所有者,将返回所有共享权限。这包括共同所有人。
  • 对于非所有者调用者,仅返回适用于调用者的共享权限。
  • 只为能够创建共享权限的调用者返回包含秘密(例如 shareId 和 webUrl)的共享权限属性。

我试图列出与调用者共享的项目的权限,并且我得到的列表包含grantedTo除了调用用户之外的其他用户的条目,尽管文档说了什么。实际上,没有grantedTo为我与之通话的用户指定任何条目。该列表还包括一个link权限条目。我可以假设该条目适用于主叫用户吗?

我在文档中找不到任何解释如何使用列表来了解用户是否对文件具有读取或写入权限的内容。

我应该迭代列表并查找grantedBy与当前用户 ID 匹配的条目吗?我也应该看看link条目的角色吗?如果有这样一个带有write角色的条目,这是否意味着我可以上传该文件的新版本?

0 投票
2 回答
304 浏览

azure - 如何获取 Microsoft Graph 的令牌以读取 Excel 表格?

我需要什么: 我需要使用 Microsoft Graph API 从 Microsoft Teams 频道读取一个 excel 表。
使用以下 URI 可以做到这一点:

https://graph.microsoft.com/v1.0/drives/someId/items/someId/workbook/tables/tableName/rows

问题是,这个端点需要一个有效的令牌。

2个机会

  1. 创建可以访问整个 OneDrive 的 Azure AD 应用程序。

  2. 创建 Azure AD 应用程序以检索有权访问所需文件的服务用户的令牌。

第一个问题是,我不想让它访问整个 OneDrive。我希望它只能访问一个 OneDrive 文件夹。 也许有可能限制对 OneDrive 文件夹的访问?

我用 com.microsoft.aad.msal4j 库尝试了第二种选择:

但这会导致以下异常:

com.microsoft.aad.msal4j.MsalServiceException:AADSTS7000218:请求正文必须包含以下参数:“client_assertion”或“client_secret”。

有任何想法吗?谢谢

0 投票
1 回答
572 浏览

typescript - 将空(0 字节)上传到 SharePoint Online

我正在开发一个节点服务,它将文件在线推送到 SharePoint。我们正在使用官方的 Graph SDK for JavaScript (..and Types)。

到目前为止 - 一切都很好,但如果文件夹包含一个长度为 0 的文件,我找不到将这些文件推送到驱动器的方法。

如果我尝试使用MicrosoftGraph.LargeFileUploadTaskJavaScript 类或者OneDriveLargeFileUploadTask上传甚至没有开始,因为“Content-Length”标头的格式设置uploadSlice()失败。

我们可以跳过类的代码,自己上传一个空切片(所有代码只适用于空文件):

结果是:Error: The Content-Range header is missing or malformed

我尝试在不上传切片的情况下提交空文件:根据https://docs.microsoft.com/de-de/graph/api/driveitem-createuploadsession?view=graph-rest-1.0#completing-a-文件(我已明确设置deferCommit=true为上传会话)

将文件的最终字节范围 PUT 到上传 URL 后,向上传 URL 发送最终的 POST 请求,内容长度为零(目前仅支持 OneDrive for Business 和 SharePoint)。

不走运,这是响应:SharePoint / Graph 预计缺少未知长度的字节,我认为:

该文件不存在。

我找不到任何有关如何使用 Microsoft Graph 处理空文件的文档。我曾考虑过创建一个空文件,例如touch在线使用,而不是上传它,但我也找不到这样做的方法。

也许这是一个不受支持的场景?

0 投票
2 回答
301 浏览

microsoft-graph-api - 如何永久获取 OneDrive API 下载地址

https://docs.microsoft.com/en-us/onedrive/developer/rest-api/api/permission_delete?view=odsp-graph-online

注意:@microsoft.graph.downloadUrl 值是一个短暂的 URL,不能被缓存。该 URL 将仅在其失效前的短时间内(1 小时)可用。

在教程中,下载 url 一小时后过期。如何获得永久下载地址?

错误信息

抱歉,出了点问题 访问令牌已过期。有效期从“2020 年 11 月 11 日凌晨 1:18:52”到“2020 年 11 月 11 日凌晨 2:18:52”。

0 投票
0 回答
147 浏览

php - MS Graph API:无法获取单个文件权限的用户列表,而不是成员、访问者和所有者

我正在尝试使用路径获取用户的文件权限列表(电子邮件 ID 名称等),还尝试使用文件 ID,但它显示了成员、所有者和访问者的数组。我想检查有多少用户可以访问该特定文件,并且我想删除或更新特定用户/用户的权限。您可以在下面的屏幕截图中看到我的代码和响应。

代码

回复