API chaqiruvlari va tokenni yangilash uchun gspread 6 proksi marshrutlash
gspread ga proksini tushunadigan avtorizatsiyalangan sessiya bering va Google hisob ma'lumotlarini yangilash uchun ishlatiladigan alohida transportni sozlang.
Ulardan biriga proksi kerak bo'lganda gspread ning avtorizatsiyalangan API sessiyasini ham, hisob ma'lumotlarini yangilash so'rovining transportini ham sozlang:
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)Bu gspread 6 ning Client interfeysidan berilgan sessiya va ilovaning mavjud hisob ma'lumotlari bilan foydalanadi. U transportni sozlaydi, jadval ruxsatlarini yoki OAuth qamrovini emas. Ruxsat etilgan umumiy yo'ldagi umumiy API va token oxirgi nuqtalari uchun marshrut xaritasiga HTTP proksilar ro'yxatidan autentifikatsiyalanmagan HTTP nomzodini tanlang. Vositachini almashtirganda ikkala sessiyani ham saqlangan proksi hisobidan xoli saqlang.
AuthorizedSession API so'rovlariga hisob ma'lumotlarini qo'shadi va ularni yangilay oladi. auth_request bo'lmasa, google-auth o'sha trafik uchun yana bir Requests sessiyasini yaratishi mumkin. Avtorizatsiyalangan sessiyadagi proksi standart sozlamalari mustaqil yaratilgan sessiyani sozlamaydi.
Yuqoridagi Request adapteri o'sha ikkinchi yo'lni ataylab ta'minlaydi. Foydalanish paytida ikkala sessiyani saqlang, so'ngra ilova qamrovi oxirida tashqariga tegishli sessiyalarni yoping.
Bular Session standart sozlamalari, shuning uchun Requests muhitini birlashtirish hali ham ularga ta'sir qilishi mumkin. Ruxsat etilgan marshrut talab qilinganda meros qolgan proksi kiritmalarini hisobga oling.
Muvaffaqiyatsiz URL dan jadvalning rad etilishini, proksi sinovini va hisob ma'lumotlari oxirgi nuqtasining nosozligini farqlash uchun foydalaning. Keshlangan kirish tokeni API chaqiruvlarini hech qanday yangilashsiz muvaffaqiyatli qilishi mumkin.