Microsoft Graph API 间歇性错误“未找到令牌:令牌无效或已过期”在重试后自行解决

Goo*_*ieK 8 azure-active-directory microsoft-graph-api

我正在向 Microsoft Graph REST api(测试版)发出请求,特别是向登录事件端点:https : //graph.microsoft.com/beta/auditLogs/signIns

我正在发出批处理请求,以 1000 个批次检索特定用户的登录信息。从 9 月 25 日左右开始,这些请求将在大约 10-50 个批次后失败,响应如下,HTTP 为 400(无效请求)错误代码:

"error": {
  "code": "",
  "message": "Token not found: token is either invalid or expired",
  "innerError": {
    "request-id": "[request-id-redacted]",
    "date": "2019-09-30T22:27:36"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我在等待 ~1 秒后重试请求,使用完全相同的 JWT Web 令牌,请求会成功,并且我能够完成我正在运行的作业的所有批处理请求。我在最初进行身份验证时收到的访问令牌在 1 小时后到期,但是在我收到令牌后约 1-15 分钟出现此错误(我已确认使用令牌获得的 unix 时间戳到期日期)。

我想知道这个错误的原因可能是什么,以及我如何避免它,除了硬编码特定的响应消息并重试。我也无法在 google 上找到任何匹配的错误消息。有没有人以前从 Microsoft Graph API 中看到过这个错误?

Sof*_*re2 0

这似乎是一个错误。根据此错误通知单,某些情况下可能会导致记录的 20 个限制出现更高的计数。您可能想尝试限制自己,以便以较慢的速度发送请求。