Microsoft Graph限制Excel更新

时间:2017-08-31 23:12:56

标签: microsoft-graph

我正在开发一个连接到Microsoft Graph API的Node.js应用程序。

通常情况下,我会返回429状态代码,在error documentation中将其描述为“Too Many Requests”。

有时返回的信息是:

  

TooManyRequests。客户端应用程序已被限制,并且在经过一段时间之后不应尝试重复请求。

其他时候,它会返回:

  

“TooManyRequests。服务器正忙。请稍后再试。”

不幸的是,它没有在标题中返回Retry-After字段,即使他们best practices声称它应该这样做。

这完全处于开发阶段,而且我没有多次使用该服务,因为它一直在调试期间。我意识到微软经常改变它的运作方式。我发现很难围绕甚至不提供Retry-After字段的服务开发应用程序,并且似乎存在很多问题(我使用v1.0端点)。

当我等待5分钟时(正如我所看到的那样推荐),该服务仍然出错。以下是返回响应的示例:

{
    "error": {
        "code": "TooManyRequests",
        "message": "The server is busy. Please try again later.",
        "innerError": {
            "request-id": "d963bb00-6bdf-4d6b-87f9-973ef00de211",
            "date": "2017-08-31T23:09:32"
        }
    }
}

这可能与正在进行的操作有关吗?

我正在更新A2:L3533的范围。它们都是文本值。我想知道这是否会影响节流。我没有找到任何关于使用“较小”操作集的指导。

1 个答案:

答案 0 :(得分:0)

如果没有看到您的代码,很难准确诊断出发生了什么。也就是说,你在这里的范围是巨大的,几乎肯定会导致问题。

来自documentation

  

大范围意味着对于单个API调用来说,大小的范围太大。许多因素(如单元格数,值,numberFormat和范围中包含的公式)可能会使响应变得如此之大,以至于它变得不适合API交互。 API最有效地返回或写入所请求的数据。但是,由于资源利用率很高,所涉及的大尺寸可能会导致API错误。

     

为避免这种情况,我们建议您在多个较小范围内读取或写入大范围。