【问题标题】:Graph API for accessing teams and team's groups to pull documents用于访问团队和团队的组以提取文档的 Graph API
【发布时间】:2020-09-02 08:09:12
【问题描述】:

我正在开发资产管理系统,我的应用程序需要提取他们存储在团队或任何团队组中的所有员工的特定文档。 使用图形 API 或任何其他媒介,我怎样才能达到同样的效果。任何建议或指示都会有所帮助。

【问题讨论】:

    标签: microsoft-graph-api azure-ad-graph-api microsoft-graph-sdks microsoft-graph-teams


    【解决方案1】:

    Teams 有一个关联的组。

    所以你需要首先通过 (reference) 获取所有团队的列表:

    GET https://graph.microsoft.com/beta/groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team')
    

    然后你可以遍历这个列表来获取 Group (Teams) id。

    像这样 (reference) 获取团队中的频道:

    GET https://graph.microsoft.com/v1.0/teams/{Group id}/channels
    

    记录频道名称。

    现在使用此调用获取存储在 Teams 频道 (reference) 中的文件:

    GET https://graph.microsoft.com/v1.0/groups/{Group id}/drive/root:/{channel name}:/children
    

    您需要实现多个循环来获取存储在 Teams 中的所有文件。

    更新:

    使用以下请求列出团队中的项目:

    GET https://graph.microsoft.com/v1.0/groups/{Group id}/drive/root/children
    

    您可以从响应中获取常规文件夹的项目ID。

    然后就可以通过以下方式获取General文件夹下的文件了:

    GET https://graph.microsoft.com/v1.0/groups/{Group id}/drive/items/{item id}/children
    

    【讨论】:

    • 非常感谢您的建议。非常感激。我将尝试实施并回来。
    • 为了更清楚地说明要求,在我的情况下,大约有 15,000 名员工,如果任何用户在团队中上传“abc.pptx”文档,那么它应该在应用程序中可用实时,如果有人从团队中删除,它也应该从应用程序中删除。基本上两者应该是同步的。
    • 如果我用这个迭代过程来达到同样的效果,它就不是实时的,总会有一个时间间隔。只是想知道,团队中是否有任何通知服务,它确认在团队/频道/选项卡上上传/删除的文档以及由谁上传/删除。这样只能读取特定文档,而不是遍历所有文档。或任何其他出路。
    • Set up notifications for changes in user data。相关电话是Create subscription。请注意,该文件存储在 SharePoint 中。因此,您应该为 driveItem (OneDrive for Business) 创建订阅作为受支持的资源。
    • 谢谢,我会看看这个并确认。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多