그래픽 API를 호출하고 공유 포인트의 디렉터리를 탐색하는 Python 코드가 있습니다. 디렉터리에는 120GB의 파일이 있으며 검색하는 데 몇 시간이 걸립니다. 그러나 스크립트가 Visual Studio 코드에서만 실행되는 것처럼 보이고 더 이상 실행되지 않는 것으로 나타났습니다. 루프에서 파일 이름을 인쇄하고 있는데 한 시간 후에 파일 이름 입력이 중지됩니다.
토큰이 1시간 뒤에 만료되기 때문인가요? 그렇다면 토큰이 유효하지 않다는 오류가 표시되지 않는 이유는 무엇입니까?
# 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()
에 대한 호출을 추가할 수 있습니다.
그러나 코드의 예상 가동 시간이 토큰의 유효 기간을 초과하는 경우 이러한 유형의 오류가 발생하지 않도록 코드에서 적절한 oauth 새로 고침 프로세스를 사용해야 합니다.
위 내용은 Azure 전달자 토큰 수명 주기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!