جب دونوں میں سے کسی کو پراکسی درکار ہو تو gspread کا مجاز API سیشن اور اسناد کی تجدید کی درخواست کی ترسیل دونوں ترتیب دیں:

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)

یہ gspread 6 کا Client انٹرفیس دیے گئے سیشن اور ایپلیکیشن کی موجودہ اسناد کے ساتھ استعمال کرتا ہے۔ یہ ترسیل ترتیب دیتا ہے، اسپریڈ شیٹ کی اجازتیں یا OAuth دائرے نہیں۔ مجاز عوامی راستے پر واقع عوامی API اور ٹوکن اینڈ پوائنٹس کے لیے روٹ نقشے کے لیے HTTP پراکسی فہرست سے غیر تصدیق شدہ HTTP امیدوار منتخب کریں۔ درمیانی تبدیل کرتے وقت دونوں سیشنوں کو کسی بھی محفوظ پراکسی اکاؤنٹ سے پاک رکھیں۔

AuthorizedSession API درخواستوں میں اسناد شامل کرتا ہے اور انہیں تازہ کر سکتا ہے۔ auth_request کے بغیر google-auth اس ٹریفک کے لیے ایک اور Requests سیشن بنا سکتا ہے۔ مجاز سیشن پر پراکسی کی طے شدہ قدریں آزادانہ طور پر بنائے گئے سیشن کو ترتیب نہیں دیتیں۔

اوپر دیا گیا Request اڈاپٹر وہ دوسرا راستہ جان بوجھ کر فراہم کرتا ہے۔ استعمال کے دوران دونوں سیشن رکھیں، پھر ایپلیکیشن کے دائرہ کار کے اختتام پر بیرونی ملکیت والے سیشن بند کریں۔

یہ Session کی طے شدہ قدریں ہیں، اس لیے Requests ماحول کا انضمام اب بھی ان پر اثر ڈال سکتا ہے۔ جب مقررہ راستہ درکار ہو تو وراثت میں ملنے والے پراکسی ان پٹ کا حساب رکھیں۔

ناکام URL استعمال کریں تاکہ اسپریڈ شیٹ کی نامنظوری، پراکسی چیلنج اور اسناد کے اینڈ پوائنٹ کی ناکامی میں فرق کیا جا سکے۔ کیش شدہ رسائی ٹوکن API کالز کو بغیر کوئی تجدید کیے کامیاب بنا سکتا ہے۔

متعلقہ مضامین