Ikkonfigura kemm is-sessjoni API awtorizzata ta' gspread kif ukoll it-trasport tat-talba għat-tiġdid tal-kredenzjali meta wieħed minnhom ikun jeħtieġ il-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)

Dan juża l-interface Client ta' gspread 6 b'sessjoni mogħtija u l-kredenzjali eżistenti tal-applikazzjoni. Jikkonfigura t-trasport, mhux il-permessi tal-spreadsheet jew l-ambiti OAuth. Għall-endpoints pubbliċi tal-API u tat-token fuq rotta pubblika permessa, agħżel kandidat HTTP mhux awtentikat mill-lista tal-proxy HTTP għall-mappa tar-rotot. Żomm iż-żewġ sessjonijiet ħielsa minn kwalunkwe kont tal-proxy miżmum meta tinbidel l-intermedjarju.

AuthorizedSession iżid il-kredenzjali mat-talbiet tal-API u jista' jiġġeddidhom. Mingħajr auth_request, google-auth jista' joħloq sessjoni Requests oħra għal dak it-traffiku. Il-defaults tal-proxy fuq is-sessjoni awtorizzata ma jikkonfigurawx dik maħluqa b'mod indipendenti.

L-adapter Request hawn fuq jipprovdi dik it-tieni rotta apposta. Żomm iż-żewġ sessjonijiet waqt l-użu, imbagħad agħlaq sessjonijiet proprjetà ta' barra fi tmiem l-ambitu tal-applikazzjoni tagħhom.

Dawn huma defaults ta' Session, għalhekk l-għaqda tal-ambjent ta' Requests xorta tista' taffettwahom. Qis l-inputs tal-proxy li ntirtu meta tinħtieġ rotta fissa.

Uża l-URL li falliet biex tiddistingwi rifjut tal-spreadsheet, sfida tal-proxy u ħsara fl-endpoint tal-kredenzjali. Token ta' aċċess fil-cache jista' jġiegħel is-sejħiet API jirnexxu mingħajr ma ssir ebda tiġdid.

Artikli relatati