Konfiguroni njëkohësisht sesionin e autorizuar API të gspread dhe transportin e kërkesës për rifreskimin e kredencialeve kur njëra prej tyre ka nevojë për 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)

Ky kod përdor ndërfaqen Client të gspread 6 me një sesion të dhënë dhe kredencialet ekzistuese të aplikacionit. Konfiguron transportin, jo lejet e fletës ose sferat OAuth. Për pikat fundore publike të API-së dhe të tokenave në një rrugë publike të lejuar, zgjidhni një kandidat HTTP të paautentikuar nga lista e proxy-ve HTTP për hartën e rrugëve. Mbajini të dyja sesionet pa asnjë llogari proxy të ruajtur kur ndryshoni ndërmjetësin.

AuthorizedSession shton kredenciale në kërkesat API dhe mund t'i rifreskojë ato. Pa auth_request, google-auth mund të krijojë një sesion tjetër Requests për atë trafik. Vlerat e paracaktuara të proxy-t në sesionin e autorizuar nuk e konfigurojnë atë të krijuar në mënyrë të pavarur.

Adaptori Request më sipër e ofron me qëllim atë rrugë të dytë. Mbajini të dyja sesionet gjatë përdorimit, pastaj mbyllni sesionet në pronësi të jashtme në fund të fushës së aplikimit.

Këto janë vlera të paracaktuara të Session, prandaj bashkimi i mjedisit të Requests mund të ndikojë ende në to. Merrni parasysh hyrjet e proxy-t të trashëguara kur kërkohet një rrugë fikse.

Përdorni URL-në e dështuar për të dalluar një refuzim të fletës, një sfidë proxy dhe një dështim të pikës fundore të kredencialeve. Një token aksesi i ruajtur në cache mund t'i bëjë thirrjet API të suksesshme pa kryer fare rifreskim.

Artikuj të ngjashëm