Proxy routing ng gspread 6 para sa mga tawag sa API at pag-refresh ng token
Bigyan ang gspread ng sesyong awtorisado na may kamalayan sa proxy at i-configure ang hiwalay na transport na ginagamit sa pag-refresh ng mga kredensyal ng Google.
I-configure kapwa ang awtorisadong sesyon ng API ng gspread at ang transport ng kahilingan sa pag-refresh ng kredensyal kapag kailangan ng alinman sa kanila ang 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)Ginagamit nito ang interface ng Client ng gspread 6 sa isang ibinigay na sesyon at sa mga umiiral na kredensyal ng aplikasyon. Nagko-configure ito ng transport, hindi ng mga pahintulot sa spreadsheet o saklaw ng OAuth. Para sa mga pampublikong endpoint ng API at token sa isang pinapayagang pampublikong ruta, pumili ng hindi awtentikadong kandidatong HTTP mula sa listahan ng HTTP proxy para sa mapa ng ruta. Panatilihing walang anumang naka-save na proxy account ang dalawang sesyon kapag pinapalitan ang tagapamagitan.
AuthorizedSession ay nagdaragdag ng kredensyal sa mga kahilingan sa API at kayang i-refresh ang mga ito. Kung walang auth_request, ang google-auth ay maaaring gumawa ng isa pang sesyon ng Requests para sa trapikong iyon. Ang mga default ng proxy sa awtorisadong sesyon ay hindi nagko-configure sa isang ginawang malaya.
Ang adapter ng Request sa itaas ay sadyang nagbibigay ng ikalawang rutang iyon. Panatilihin ang dalawang sesyon habang ginagamit, pagkatapos ay isara ang mga sesyong pag-aari ng labas sa dulo ng saklaw ng aplikasyon nito.
Ito ay mga default ng Session, kaya maaari pa ring maapektuhan ng pagsasanib ng kapaligiran ng Requests ang mga ito. Isaalang-alang ang mga namamana na input ng proxy kapag kailangan ang isang fixed na ruta.
Gamitin ang nabigong URL upang makilala ang pagtanggi ng spreadsheet, hamon ng proxy at pagkabigo ng endpoint ng kredensyal. Ang naka-cache na access token ay maaaring magpapanalo sa mga tawag sa API nang walang anumang pag-refresh.