Поставете ја и авторизираната API сесија на gspread и транспортот на барањето за освежување на акредитивите кога на едното од нив му треба прокси:

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)

Ова го користи интерфејсот Client на gspread 6 со обезбедена сесија и постоечките акредитиви на апликацијата. Поставува транспорт, а не дозволи за табелата или OAuth опсези. За јавни крајни точки на API и токени на дозволена јавна рута, изберете неавтентициран HTTP кандидат од списокот со HTTP прокси за картата на рути. Држете ги двете сесии без зачуван прокси профил при менување на посредникот.

AuthorizedSession додава акредитиви во API барањата и може да ги освежи. Без auth_request google-auth може да создаде друга Requests сесија за тој сообраќај. Стандардните поставки за прокси на авторизираната сесија не ја поставуваат независно создадената.

Адаптерот Request погоре намерно го обезбедува тој втор пат. Чувајте ги двете сесии додека се користат, а потоа затворете ги сесиите во надворешна сопственост на крајот од нивниот опсег на примена.

Ова се стандардни поставки на Session, затоа спојувањето на околината на Requests сè уште може да влијае на нив. Сметајте на наследените прокси влезови кога е потребна фиксна рута.

Користете го неуспешниот URL за да разликувате одбивање на табелата, предизвик на проксито и дефект на крајната точка за акредитиви. Кеширан токен за пристап може да ги направи API повиците успешни без воопшто да се изврши освежување.

Поврзани статии