ഇവയിൽ ഒന്നിന് പ്രോക്സി ആവശ്യമുള്ളപ്പോൾ 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 കോളുകൾ വിജയിപ്പിക്കാം.

അനുബന്ധ ലേഖനങ്ങൾ