Määritä sekä gspreadin valtuutettu API-istunto että tunnistetietojen uusimispyynnön siirto, kun jompikumpi tarvitsee välityspalvelinta:

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)

Tämä käyttää gspread 6:n Client-rajapintaa annetulla istunnolla ja sovelluksen olemassa olevilla tunnistetiedoilla. Se määrittää siirron, ei laskentataulukon käyttöoikeuksia tai OAuth-laajuuksia. Julkisille API- ja tunnuspäätepisteille sallitulla julkisella reitillä valitse todentamaton HTTP-ehdokas HTTP-välityspalvelinluettelosta reittikarttaa varten. Pidä molemmat istunnot vapaina mistään tallennetusta välityspalvelintilistä, kun vaihdat välittäjää.

AuthorizedSession lisää tunnistetiedot API-pyyntöihin ja voi uusia ne. Ilman auth_request google-auth voi luoda toisen Requests-istunnon tälle liikenteelle. Valtuutetun istunnon välityspalvelimen oletukset eivät määritä itsenäisesti luotua istuntoa.

Yllä oleva Request-sovitin tarjoaa tuon toisen reitin tarkoituksella. Pidä molemmat istunnot käytön ajan ja sulje ulkoisesti omistetut istunnot niiden sovelluslaajuuden lopussa.

Nämä ovat Session-oletuksia, joten Requestsin ympäristön yhdistäminen voi silti vaikuttaa niihin. Ota perityt välityspalvelinsyötteet huomioon, kun kiinteä reitti vaaditaan.

Käytä epäonnistunutta URL-osoitetta erottamaan laskentataulukon kieltäytyminen, välityspalvelimen haaste ja tunnistetietopäätepisteen virhe. Välimuistiin tallennettu käyttötunnus voi saada API-kutsut onnistumaan ilman, että uusimista suoritetaan lainkaan.

Aiheeseen liittyvät artikkelit