gspread 6 tarpinio serverio maršrutizavimas API iškvietimams ir prieigos raktų atnaujinimui
Suteikite gspread tarpinį serverį suprantančią autorizuotą sesiją ir sukonfigūruokite atskirą transportą, naudojamą Google kredencialams atnaujinti.
Sukonfigūruokite ir autorizuotą gspread API sesiją, ir kredencialų atnaujinimo užklausos transportą, kai kuriam nors iš jų reikia tarpinio serverio:
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)Tai naudoja gspread 6 Client sąsają su pateikta sesija ir esamais programos kredencialais. Ji konfigūruoja transportą, o ne skaičiuoklės leidimus ar OAuth apimtis. Viešiems API ir prieigos rakto galiniams taškams leistiname viešame maršrute pasirinkite neautentifikuotą HTTP kandidatą iš HTTP tarpinių serverių sąrašo maršrutų žemėlapiui. Keisdami tarpininką, abi sesijas laikykite be jokios išsaugotos tarpinio serverio paskyros.
AuthorizedSession prideda kredencialus prie API užklausų ir gali juos atnaujinti. Be auth_request google-auth gali sukurti dar vieną Requests sesiją tam srautui. Autorizuotos sesijos tarpinio serverio numatytosios reikšmės nesukonfigūruoja nepriklausomai sukurtos sesijos.
Aukščiau pateiktas Request adapteris sąmoningai užtikrina tą antrą maršrutą. Naudojimo metu išlaikykite abi sesijas, o programos taikymo pabaigoje uždarykite iš išorės valdomas sesijas.
Tai Session numatytosios reikšmės, todėl Requests aplinkos sujungimas vis tiek gali joms daryti įtaką. Kai reikia fiksuoto maršruto, atsižvelkite į paveldėtas tarpinio serverio įvestis.
Naudokite nepavykusį URL, kad atskirtumėte skaičiuoklės atsisakymą, tarpinio serverio iššūkį ir kredencialų galinio taško gedimą. Podėlyje esantis prieigos raktas gali leisti API iškvietimams pavykti visiškai neatliekant atnaujinimo.