Проксі-маршрутызацыя gspread 6 для выклікаў API і абнаўлення токена
Дайце gspread аўтарызаваную сесію, якая ўлічвае проксі, і наладзьце асобны транспарт для абнаўлення ўліковых даных Google.
Наладзьце адначасова аўтарызаваную сесію 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 паспяхова выканацца без ажыццяўлення абнаўлення наогул.