【问题标题】:MS Graph API endpoint /v1.0/me/planner/plans doesn't return all my plansMS Graph API 端点 /v1.0/me/planner/plans 没有返回我的所有计划
【发布时间】:2017-08-22 03:11:04
【问题描述】:

过去,我通过 beta-API 的 REST 调用来阅读当前用户的计划列表:

https://graph.microsoft.com/beta/me/plans

2017 年 7 月,planner API 发布,端点也有一些小的变化,所以现在 V1.0-API 中的 REST 调用是:

https://graph.microsoft.com/v1.0/me/planner/plans

很遗憾,我没有收到关于该端点的所有计划。显然我只得到存在很长时间的计划,但任何新创建的计划都是不可见的。我对我的计划尝试了很多操作,例如订阅、向我分配任务、在 Planner Hub 中偏爱计划、公开或私有计划,但没有任何帮助,新计划在 API 中仍然不可见。

谁能解释一下新端点到底做了什么? documentation for List plans 不是很有帮助。

谁能解释我如何列出我拥有或成员的所有计划(标题和 ID)?

到目前为止,我发现的唯一解决方法是:

1) 读取所有统一组

https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group?$filter=groupTypes/any(a:a eq 'unified')

2) 对于每个组:阅读该组的计划者计划

https://graph.microsoft.com/v1.0/groups/<id>/planner/plans

但这需要每个组一个请求,这使得拥有数十个组的租户的性能很糟糕。

【问题讨论】:

    标签: microsoft-graph-api


    【解决方案1】:

    此 API 返回已与当前用户共享的计划。可以通过将用户的 ID 添加到 planDetailssharedWith 属性与用户共享计划(编辑:当前用户无权在此列表中添加或删除其他人)。这是一组独立于组成员的用户,不允许共享用户访问数据。相反,如果用户是群组成员,他们将拥有访问权限,如果从群组中删除,他们将失去访问权限。

    更多信息和更新计划细节的示例可以找到here

    此外,您可以提交有关 API(和其他 Planner 功能)的反馈here

    【讨论】:

    • 假设您的答案是正确的,那么 API 中肯定存在错误,因为对于所有新计划,sharedWith 属性仅包含一个不是有效人员的 id,与我共享的人数无关计划与。对于旧计划,sharedWith 属性中有有效用户的 id,但新用户不会添加 sharedWith 属性。
    • 向群组添加成员不会更新 sharedWith 用户。仅当用户在 Planner 中查看计划或人们直接将自己添加到计划时,才会更新此集。
    • 我们可以将用户添加到 PlanDetails 的 sharedWith 属性中,即使拥有普通用户的权限,只要用户是组的成员,在我们的例子中就是这样。这就是我们现在的做法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    相关资源
    最近更新 更多