我有一个 Office365 开发者帐户,有几个用户。我正在尝试使用 Microsoft Graph API 通过守护程序应用程序(即 headless )访问他们的邮件。
我已验证这些用户的邮箱是否存在,但出现错误:
ErrorNonExistentMailbox
No mailbox was found that includes the specified identity: `<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="48303008313166272625212b3a273b272e3c662b2725" rel="noreferrer noopener nofollow">[email protected]</a>`
我之前已获得 token 作为注册应用程序(通过 apps.dev.microsoft.com
),并将其包含在以下请求 URL 中:
https://graph.microsoft.com/v1.0/users/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7f07073f060651101112161c0d100c10190b511c1012" rel="noreferrer noopener nofollow">[email protected]</a>/messages
有什么指导吗?
token 在第一个操作中出现,如下所示:
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 0,
"access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFEWDhHQ2k2SnM2U0s4MlRzRDJQYjdyblpfdTg3QjlwS2hFeG5ncFRpS1gwczVwY2k1YnpobHZDdTFlVi1uRlFkRk0yMHlJZ1MxdnlBbC1UUnBYdGNoakxIYkhMb21hT28wb3UxaTkxYnJKRENBQSIsImFsZyI6IlJTMjU2IiwieDV0IjoiaUJqTDFSY3F6aGl5NGZweEl4ZFpxb2hNMllrIiwia2lkIjoiaUJqTDFSY3F6aGl5NGZweEl4ZFpxb2hNMllrIn0.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC83MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDcvIiwiaWF0IjoxNTI3NTM1NTU5LCJuYmYiOjE1Mjc1MzU1NTksImV4cCI6MTUyNzUzOTQ1OSwiYWlvIjoiWTJkZ1lHaTl6Zi9XNWVTTXlPZ0ppc3NxMThUSkFRQT0iLCJhcHBfZGlzcGxheW5hbWUiOiJJbmZvcm1hdGljYSBDQUkgaXoiLCJhcHBpZCI6IjQ0YTA4YWU3LTZiYzItNGEzMy04MmNiLTAzNzZhMzkxYjdhZCIsImFwcGlkYWNyIjoiMSIsImlkcCI6Imh0dHBzOi8vc3RzLndpbmRvd3MubmV0LzcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0Ny8iLCJ0aWQiOiI3MmY5ODhiZi04NmYxLTQxYWYtOTFhYi0yZDdjZDAxMWRiNDciLCJ1dGkiOiI4RnlhZUZ0ZHVFdWRjcFBNYmswYkFBIiwidmVyIjoiMS4wIn0.DMpgiNfazeDd2KsEjHAggKAg3STMeK59ls9-whHaf-UEON_fvP45ay6PrqfAnwdqz-QKmX-8ikyiM8zuE5r8IGL1d7zYzJCnIECeQwtg8OKzYJPyDW7V0RAF0yePT2fg22luGhFz5yqzjSGlxhWauZmkmXq7JrGrO7fhzAUwoJh7XJrIOlfj098LPoTrmfAaOn36hBmmcQyuFNDhW5E6oXqZsyssJ5SKvaXN_w62IrXv2-nmIkZwyqcrVlCnX_Q1ytrFuc_xItL0FFe_5MbRiF-JIxdbeFNE8LR06mFWfEGHyJu01SJvgxE9500nVzok94qCX-r5lxN0WqVLOuTqEg"
}
最佳答案
我发现我做错了什么。最初请求 token 时,我使用“common”作为 URL 的租户部分。显然,虽然合法,但这并没有给予适当的权限。解码后我返回的 token 没有列出任何权限,如果我对 JWT token 内容和格式更熟悉一点的话,这将是一个线索。
一旦我将 URL 的租户部分更改为租户 GUID(从 AD 检索)或完全限定的域名(在我的例子中类似于 yy.onmicrosoft.com),我取回了一个不同的 token ,其中包含我在应用注册门户中授予的 Microsoft Graph 权限列表。
使用这个新 token ,我能够从我的域中任何用户的邮箱中检索邮件。感谢马克为我指明了正确的方向。
关于microsoft-graph-api - Microsoft Graph - 找不到邮箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50544004/