尝试使用 Microsoft Graph 在多封电子邮件中获取未读邮件数

trying to get unread message count with Microsoft graph on multiple emails

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

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

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

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

该应用具有 api Microsoft Graph 读取所有邮箱中邮件的权限。

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

这将使查询:

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

访问登录用户以外的用户邮箱。您需要使用应用程序 (app-only) 令牌调用 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}/消息

您可以使用电话号码 获取 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 纯粹用于 on-behalf 的流量请求调用。设置说明在这里 https://docs.microsoft.com/en-us/graph/use-postman

只需在 GET 中传递 UserID API

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