Állítsa be egyszerre a gspread hitelesített API-munkamenetét és a hitelesítő adatok frissítési kérésének átvitelét, amikor bármelyiküknek proxra van szüksége:

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)

Ez a gspread 6 Client felületét használja egy átadott munkamenettel és az alkalmazás meglévő hitelesítő adataival. Az átvitelt állítja be, nem a táblázat engedélyeit vagy az OAuth-hatóköröket. Az engedélyezett nyilvános útvonalon lévő nyilvános API- és tokenvégpontokhoz válasszon hitelesítés nélküli HTTP-jelöltet az HTTP proxy listáról az útvonaltérképhez. A közvetítő cseréjekor tartsa mindkét munkamenetet mentett proxyfiók nélkül.

AuthorizedSession hitelesítő adatokat ad az API-kérésekhez, és frissítheti azokat. auth_request nélkül a google-auth újabb Requests-munkamenetet hozhat létre ehhez a forgalomhoz. A hitelesített munkamenet proxy-alapértékei nem állítják be a függetlenül létrehozottat.

A fenti Request-adapter szándékosan biztosítja ezt a második útvonalat. Használat közben tartsa meg mindkét munkamenetet, majd az alkalmazási hatókörük végén zárja be a külső tulajdonú munkameneteket.

Ezek Session-alapértékek, ezért a Requests környezet összevonása továbbra is hatással lehet rájuk. Fix útvonal szükségessége esetén számoljon az örökölt proxy-bemenetekkel.

A sikertelen URL segítségével különböztesse meg a táblázat elutasítását, a proxy kihívását és a hitelesítő végpont hibáját. A gyorsítótárazott hozzáférési token miatt az API-hívások anélkül is sikerülhetnek, hogy a frissítés egyáltalán lefutna.

Kapcsolódó cikkek