Encaminament de proxy de gspread 6 per a crides API i renovació de testimonis
Doneu a gspread una sessió autoritzada que entén el proxy i configureu el transport separat que renova les credencials de Google.
Configureu alhora la sessió API autoritzada de gspread i el transport de la sol·licitud de renovació de credencials quan qualsevol dels dos necessiti el 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)Això utilitza la interfície Client de gspread 6 amb una sessió subministrada i les credencials existents de l'aplicació. Configura el transport, no els permisos del full de càlcul ni els àmbits OAuth. Per als punts de connexió públics d'API i de testimoni en una ruta pública permesa, trieu un candidat HTTP no autenticat de la llista de proxy HTTP per al mapa de rutes. Mantingueu les dues sessions sense cap compte de proxy conservat en canviar l'intermediari.
AuthorizedSession afegeix credencials a les sol·licituds API i les pot renovar. Sense auth_request, google-auth pot crear una altra sessió de Requests per a aquest tràfic. Els valors per defecte de proxy a la sessió autoritzada no configuren la creada de manera independent.
L'adaptador Request anterior proporciona deliberadament aquesta segona ruta. Mantingueu les dues sessions mentre s'utilitzin i, després, tanqueu les sessions de propietat externa al final del seu àmbit d'aplicació.
Són valors per defecte de Session, així que la fusió de l'entorn de Requests encara els pot afectar. Tingueu en compte les entrades de proxy heretades quan calgui una ruta fixa.
Utilitzeu l'URL fallit per distingir un rebuig del full de càlcul, un desafiament del proxy i un error del punt de connexió de credencials. Un testimoni d'accés en memòria cau pot fer que les crides API tinguin èxit sense exercitar cap renovació.