Konfigurer både gspreads autoriserte API-økt og transporten for fornyelsesforespørselen når én av dem trenger proxyen:

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)

Dette bruker Client-grensesnittet i gspread 6 med en medfølgende økt og applikasjonens eksisterende påloggingsinformasjon. Det konfigurerer transport, ikke regnearktillatelser eller OAuth-områder. For offentlige API- og tokenendepunkter på en tillatt offentlig rute, velg en uautentisert HTTP-kandidat fra HTTP-proxylisten for rutekartet. Hold begge øktene fri for enhver lagret proxykonto når mellomleddet byttes.

AuthorizedSession legger påloggingsinformasjon til API-forespørsler og kan fornye den. Uten auth_request kan google-auth opprette en annen Requests-økt for den trafikken. Proxy-standardverdier på den autoriserte økten konfigurerer ikke den som opprettes uavhengig.

Request-adapteren ovenfor leverer bevisst den andre ruten. Behold begge øktene mens de brukes, og lukk deretter eksternt eide økter ved slutten av bruksområdet.

Dette er Session-standardverdier, så sammenslåing av Requests-miljøet kan fortsatt påvirke dem. Ta høyde for arvede proxyinndata når en fast rute kreves.

Bruk den mislykkede URL-en for å skille en avvisning fra regnearket, en proxyutfordring og en feil ved påloggingsendepunktet. Et bufret tilgangstoken kan gjøre API-kall vellykkede uten at fornyelsen utføres i det hele tatt.

Relaterte artikler