【问题标题】:trying to get unread message count with Microsoft graph on multiple emails试图在多封电子邮件上使用 Microsoft 图表获取未读邮件计数
【发布时间】:2019-07-03 20:57:44
【问题描述】:

我希望能够获取租户中特定名称的未读电子邮件数量。

类似:https://graph.microsoft.com/v1.0/me/mailFolders/Inbox/messages?$filter=isRead ne false&$count=true]

但可以为特定用户更改 me,以上内容适用于我的签名用户的图形资源管理器。

我试过这个例子here。这给我带来了一个用户列表,并试图修改它但没有成功。

该应用拥有 microsoft graph 的 api 权限,可以读取所有邮箱中的邮件。

【问题讨论】:

    标签: c# microsoft-graph-api microsoft-graph-mail


    【解决方案1】:

    访问登录用户以外的用户邮箱。您将需要使用应用程序(仅限应用程序)令牌调用 api。这将需要为 Mail.Read 请求应用程序权限(不是委托权限)。

    有关在没有用户上下文的情况下获取访问权限的更多信息,请点击此处https://docs.microsoft.com/en-us/graph/auth-v2-service?context=graph%2Fapi%2F1.0&view=graph-rest-1.0

    请求将是 获取https://graph.microsoft.com/v1.0/users/{id | userPrincipalName}/消息

    您可以使用调用的 id 获取https://graph.microsoft.com/v1.0/users

    或在大多数情况下使用您可能已经拥有的电子邮件地址 upn。

    更多文档在这里https://docs.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http

    您实际上可以在我们的 Postman 集合中测试这些请求调用。 Graph Explorer 纯粹用于代表流请求调用。设置说明在这里https://docs.microsoft.com/en-us/graph/use-postman

    【讨论】:

    • 完成此操作后,我认为使用图形 webhook 向我的应用程序发送通知会更好。每次收到电子邮件。现在,我将不得不每 x 次继续请求未读电子邮件计数。
    【解决方案2】:

    我可能误解了您的问题,但我认为您的问题是您将 URI 中的 me 替换为用户标识符。如果正确,您需要将其替换为 user/useridentifier

    这将进行查询:

    https://graph.microsoft.com/v1.0/user//mailFolders/Inbox/messages?$filter=isRead ne false&$count=true

    【讨论】:

      【解决方案3】:

      只需在 GET API 中传递 UserID

      {{UserId}} - username/mailid/principalName
          
       https://graph.microsoft.com/v1.0/users/{{UserId}}/mailFolders/Inbox/messages?$filter=isRead ne true&$count=true
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-02-06
        • 1970-01-01
        • 1970-01-01
        • 2017-04-08
        • 1970-01-01
        • 2013-02-14
        • 1970-01-01
        • 2016-12-15
        相关资源
        最近更新 更多