Usmerjanje prek proxyja v gspread 6 za klice API in osveževanje žetonov
Dajte gspreadu pooblaščeno sejo, ki pozna proxy, in nastavite ločen prenos, ki se uporablja za osveževanje Googlovih poverilnic.
Nastavite pooblaščeno sejo API gspreada in prenos zahteve za osvežitev poverilnic, ko kateri od njiju potrebuje proxy:
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)To uporablja vmesnik Client gspread 6 s posredovano sejo in obstoječimi poverilnicami aplikacije. Nastavi prenos, ne dovoljenj preglednice ali obsegov OAuth. Za javne končne točke API in žetonov na dovoljeni javni poti izberite neoverjenega kandidata HTTP s seznama proxyjev HTTP za zemljevid poti. Ob menjavi posrednika ohranite obe seji brez shranjenega proxy računa.
AuthorizedSession doda poverilnice zahtevam API in jih lahko osveži. Brez auth_request lahko google-auth za ta promet ustvari drugo sejo Requests. Privzete nastavitve proxyja na pooblaščeni seji ne nastavijo tiste, ki je ustvarjena neodvisno.
Adapter Request zgoraj namenoma zagotavlja to drugo pot. Med uporabo ohranite obe seji, nato pa na koncu obsega uporabe zaprite seje v zunanji lasti.
To so privzete nastavitve Session, zato združevanje okolja Requests še vedno lahko vpliva nanje. Ko je potrebna fiksna pot, upoštevajte podedovane vnose proxyja.
Uporabite neuspešni URL, da ločite zavrnitev preglednice, izziv proxyja in napako končne točke poverilnic. Predpomnjeni dostopni žeton lahko povzroči, da klici API uspejo, ne da bi se osvežitev sploh izvedla.