gspread 6 proxy-ruting for API-kall og tokenfornying
Gi gspread ei proxyviten autorisert økt og set opp den separate transporten som vert brukt til å fornya Google-pålogginga.
Set opp både den autoriserte API-økta til gspread og transporten for fornyingsførespurnaden når ein av dei treng 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 brukar Client-grensesnittet i gspread 6 med ei medfølgjande økt og dei eksisterande påloggingsopplysningane til applikasjonen. Det set opp transport, ikkje arkrettar eller OAuth-område. For opne API- og tokenendepunkt på ein tillaten open rute, vel ein uautentisert HTTP-kandidat frå HTTP-proxylista for rutekartet. Hald begge øktene fri for kvar lagra proxykonto når mellomleddet blir bytt.
AuthorizedSession legg påloggingsopplysningar til API-førespurnader og kan fornya dei. Utan auth_request kan google-auth laga ei anna Requests-økt for den trafikken. Proxy-standardverdiar på den autoriserte økta set ikkje opp den som blir laga sjølvstendig.
Request-adapteren ovanfor leverer med vilje den andre ruta. Hald begge øktene medan dei er i bruk, og lukk deretter eksternt eigde økter ved slutten av bruksområdet.
Dette er Session-standardverdiar, så samanslåing av Requests-miljøet kan framleis påverke dei. Ta omsyn til arva proxyinndata når ei fast rute er naudsynt.
Bruk den mislukka URL-en til å skilje ei avvising frå arket, ei proxy-utfordring og ein feil ved påloggingsendepunktet. Eit bufra tilgangstoken kan gjere API-kall vellukka utan at fornyinga blir utført i det heile.