Azure 不記名令牌生命週期
我有一個 python 程式碼來呼叫圖形 api 並瀏覽共享點上的目錄。該目錄有 120gb 的文件,需要數小時才能掃描。但是,我觀察到該腳本僅顯示為在 visual studio 程式碼上運行,並且沒有進一步執行。我在循環中列印檔案名,一小時後它停止輸入檔案名稱。
是因為 token 一小時後就過期了?如果是,為什麼我沒有收到指示令牌無效的錯誤?
# Define imports import requests # Copy access_token and specify the MS Graph API endpoint you want to call, e.g. 'https://graph.microsoft.com/v1.0/groups' to get all groups in your organization #access_token = '{ACCESS TOKEN YOU ACQUIRED PREVIOUSLY}' url = "[URL TO THE SHAREPOINT]" headers = { 'Authorization': access_token } consentfilecount=0 clientreportcount = 0 graphlinkcount = 0 while True:# #print(graph_result.json()['@odata.nextLink']) graph_result = requests.get(url=url, headers=headers) if ('value' in graph_result.json()): for list in graph_result.json()['value']: if(("Client Consent Form").lower() in list["name"].lower()): consentfilecount +=1 print(list["name"]) if(("Final Client Report").lower() in list["name"].lower()): clientreportcount +=1 print(list["name"]) #print(graph_result.json()) if('@odata.nextLink' in graph_result.json()): url = graph_result.json()['@odata.nextLink'] graphlinkcount += 1 else: break print(consentfilecount)
正確答案
您所描述的行為幾乎可以肯定是由於您似乎使用的不記名令牌確實僅在一個小時左右有效。
預設情況下,requests
does not raise exceptions based solely on HTTP status codes 允許開發人員選擇他們想要如何處理此類情況。在您的情況下,您的 while true:
迴圈只是繼續運行,成功解析從錯誤回應傳回的 json 結構,但從未真正滿足區塊內的任何條件。
如果您確實希望腳本在不成功的 http 回應程式碼上引發異常,您可以新增對 raise_for_status()
的呼叫:
graph_result = requests.get(url=url, headers=headers) graph_result.raise_for_status()
但是,如果您的程式碼預計正常運行時間超過令牌的有效期,您可能應該在程式碼中使用正確的 oauth 刷新流程,以防止此類錯誤。
以上是Azure 不記名令牌生命週期的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

本文討論了諸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和請求等流行的Python庫,並詳細介紹了它們在科學計算,數據分析,可視化,機器學習,網絡開發和H中的用途

在Python中,如何通過字符串動態創建對象並調用其方法?這是一個常見的編程需求,尤其在需要根據配置或運行...
