Configureer zowel de geautoriseerde API-sessie van gspread als het transport van de vernieuwingsaanvraag wanneer een van beide de proxy nodig heeft:

import requests
import gspread
from google.auth.transport.requests import AuthorizedSession, Request

routes = {
    'http': 'http://proxy.example:8080',
    'https': 'http://proxy.example:8080',
}
token_session = requests.Session()
token_session.proxies.update(routes)

session = AuthorizedSession(
    credentials,
    auth_request=Request(session=token_session),
)
session.proxies.update(routes)
client = gspread.Client(auth=credentials, session=session)

Dit gebruikt de Client-interface van gspread 6 met een meegegeven sessie en de bestaande referenties van de applicatie. Het configureert transport, niet spreadsheetmachtigingen of OAuth-scopes. Voor openbare API- en token-eindpunten op een toegestane openbare route kiest u een niet-geauthenticeerde HTTP-kandidaat uit de HTTP-proxylijst voor de routemap. Houd beide sessies vrij van een opgeslagen proxyaccount wanneer de tussenpersoon wisselt.

AuthorizedSession voegt referenties toe aan API-aanroepen en kan ze vernieuwen. Zonder auth_request kan google-auth een andere Requests-sessie voor dat verkeer maken. Proxy-standaardwaarden op de geautoriseerde sessie configureren de onafhankelijk gemaakte sessie niet.

De Request-adapter hierboven levert die tweede route bewust. Houd beide sessies tijdens gebruik aan en sluit daarna extern beheerde sessies aan het einde van hun toepassingsbereik.

Dit zijn Session-standaardwaarden, dus het samenvoegen van de Requests-omgeving kan ze nog steeds beïnvloeden. Houd rekening met geërfde proxy-invoer wanneer een vaste route vereist is.

Gebruik de mislukte URL om een weigering van de spreadsheet, een proxy-uitdaging en een storing van het referentie-eindpunt te onderscheiden. Een gecacht toegangstoken kan API-aanroepen laten slagen zonder dat de vernieuwing überhaupt wordt uitgevoerd.

Gerelateerde artikelen