Подесите и овлашћену 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 позиви успеју без икаквог извршавања освежавања.

Повезани чланци