API కాల్స్ మరియు టోకెన్ రిఫ్రెష్ కోసం gspread 6 ప్రాక్సీ రూటింగ్
gspreadకు ప్రాక్సీ తెలిసిన అధికృత సెషన్ ఇవ్వండి మరియు Google ఆధారాలను రిఫ్రెష్ చేయడానికి ఉపయోగించే ప్రత్యేక రవాణాను కాన్ఫిగర్ చేయండి.
వాటిలో ఏదైనా ప్రాక్సీ అవసరమైనప్పుడు 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 కాల్స్ విజయవంతం కావడానికి కారణం కావచ్చు.