gspread 6 proxy-ruting for API-kall og tokenfornyelse
Gi gspread en proxybevisst autorisert økt, og konfigurer den separate transporten som brukes til å fornye Google-påloggingsinformasjonen.
Konfigurer både gspreads autoriserte API-økt og transporten for fornyelsesforespørselen når en 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.