2017-08-31 88 views
1

我正在開發一個連接到Microsoft Graph API的Node.js應用程序。Microsoft Graph節流Excel更新

很多時候,我得到一個429狀態碼,在error documentation中描述爲「太多請求」。

有時返回的信息是:

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。它們都是文本值。我想知道這是否會影響節流。我還沒有找到任何有關使用「較小」操作集的指導。

回答

0

沒有看到您的代碼,很難確切地知道發生了什麼。這就是說,你在這裏的範圍是巨大的,幾乎肯定會導致問題。

documentation

大範圍意味着大小對於一個API調用過大的範圍。諸如單元格數量,值,數字格式以及範圍中包含的公式等因素可能會使響應變得非常大以至於不適合API交互。 API盡最大努力返回或寫入所請求的數據。但是,由於資源利用率較高,涉及的大規模可能會導致API錯誤情況。

爲避免這種情況,我們建議您讀取或寫入多個較小範圍尺寸的大範圍。

+0

謝謝Marc。即使我的請求很小,要更改1個單元格,我仍然收到相同的消息,並且我還沒有在12個小時內打過服務器。在圖形資源管理器中,我爲https://graph.microsoft.com/v1.0/me/drive/root:/MyFile執行修補程序。XLSX:/工作簿/工作表/ MySheetName /範圍(地址= 'A2:A2')用下面的JSON體 「{ 」值「:[ [ 」12「 ] ] }」,它返回「TooManyRequests 「在狀態碼429中。 – PaulPerry

+0

當我嘗試一次更新一個單元格時,仍然會得到429狀態碼。即使這是扼殺。有一些透明度會很好,理解系統爲什麼這樣做。 – PaulPerry

+0

此外,即使它們都以狀態碼429響應,「服務器仍忙,請稍後再試。」似乎不應該將它與429狀態代碼捆綁在一起進行調節。如果信息是可信的,那麼這個系統非常繁忙。 – PaulPerry