Set opp både den autoriserte API-økta til gspread og transporten for fornyingsførespurnaden når ein av dei treng proxyen:

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)

Dette brukar Client-grensesnittet i gspread 6 med ei medfølgjande økt og dei eksisterande påloggingsopplysningane til applikasjonen. Det set opp transport, ikkje arkrettar eller OAuth-område. For opne API- og tokenendepunkt på ein tillaten open rute, vel ein uautentisert HTTP-kandidat frå HTTP-proxylista for rutekartet. Hald begge øktene fri for kvar lagra proxykonto når mellomleddet blir bytt.

AuthorizedSession legg påloggingsopplysningar til API-førespurnader og kan fornya dei. Utan auth_request kan google-auth laga ei anna Requests-økt for den trafikken. Proxy-standardverdiar på den autoriserte økta set ikkje opp den som blir laga sjølvstendig.

Request-adapteren ovanfor leverer med vilje den andre ruta. Hald begge øktene medan dei er i bruk, og lukk deretter eksternt eigde økter ved slutten av bruksområdet.

Dette er Session-standardverdiar, så samanslåing av Requests-miljøet kan framleis påverke dei. Ta omsyn til arva proxyinndata når ei fast rute er naudsynt.

Bruk den mislukka URL-en til å skilje ei avvising frå arket, ei proxy-utfordring og ein feil ved påloggingsendepunktet. Eit bufra tilgangstoken kan gjere API-kall vellukka utan at fornyinga blir utført i det heile.

Relaterte artiklar