gpt4 book ai didi

microsoft-graph-api - Microsoft Graph API - 发送电子邮件始终返回响应代码 403,错误文本为 "Access is denied. Check credentials and try again."

转载 作者:行者123 更新时间:2023-12-02 15:01:39 25 4
gpt4 key购买 nike

我们已经实现了通过图形 API 发送电子邮件。

在微软应用中 https://apps.dev.microsoft.com我们已经创建了应用程序并为此应用程序设置权限“Mail.Send”。

对于身份验证,我们使用“无需用户即可访问”的方式。

我们通过这个 url 接收 token : https://login.microsoftonline.com/our_tenant/oauth2/v2.0/token body 看起来像这样:

"client_id=app_id&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=app_secret_key&grant_type=client_credentials"

使用此链接发送邮件:

https://graph.microsoft.com/v1.0/users/user_Email/sendMail

在带有电子邮件对象的正文 json 中。

当我们通过此方法发送电子邮件时,会收到响应代码“403”和文本“访问被拒绝。检查凭据并重试。”

在测试之前,我们已经为开发此集成创建了试用帐户。有了试用帐户,这个过程就完美无缺了。
你能帮忙解决当前的问题吗?也许我们忘记了什么或帐户有问题。

最好的问候

最佳答案

每当遇到这样的问题时,如果您有 token 并且您认为自己应该可以访问某些内容,但 API 返回 403,则第一步应该是解析访问 token 。您可以使用 https://jwt.io为此,(或任何其他 JWT 解析器)。您要确认以下内容:

  • aud 声明设置为 https://graph.microsoft.com
  • tid 声明是一个 GUID,与您的 Office 365 租户的租户 ID 相匹配
  • 对于仅限应用的 token (或者如您所说,“无需用户即可访问”):roles 声明是您期望范围的数组。在您的情况下,它应该包括 Mail.Send
  • 对于委派的访问 token (不是您的情况,但为了完整起见包含在此处):scp 声明是一个字符串,其中包含您期望的范围。

我的猜测是,您可能拥有一个根本没有 roles 声明的 token ,如果管理员未提供同意,就会发生这种情况。您可以通过查看 this section of the Azure article on client credential flow 来解决这个问题.

关于microsoft-graph-api - Microsoft Graph API - 发送电子邮件始终返回响应代码 403,错误文本为 "Access is denied. Check credentials and try again.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49046768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com