Perutean proxy gspread 6 untuk panggilan API dan penyegaran token
Beri gspread sesi berizin yang memahami proxy dan konfigurasikan transport terpisah yang dipakai untuk menyegarkan kredensial Google.
Konfigurasikan sesi API berizin gspread dan transport permintaan penyegaran kredensial sekaligus ketika salah satunya membutuhkan proxy:
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)Ini memakai antarmuka Client gspread 6 dengan sesi yang diberikan dan kredensial aplikasi yang sudah ada. Ini mengonfigurasi transport, bukan izin spreadsheet atau cakupan OAuth. Untuk endpoint API dan token publik pada rute publik yang diizinkan, pilih kandidat HTTP tanpa autentikasi dari daftar proxy HTTP untuk peta rute. Jaga kedua sesi bebas dari akun proxy yang tersimpan saat mengganti perantara.
AuthorizedSession menambahkan kredensial ke permintaan API dan dapat menyegarkannya. Tanpa auth_request, google-auth dapat membuat sesi Requests lain untuk lalu lintas itu. Default proxy pada sesi berizin tidak mengonfigurasi sesi yang dibuat secara mandiri.
Adaptor Request di atas menyediakan rute kedua itu dengan sengaja. Pertahankan kedua sesi selama dipakai, lalu tutup sesi milik eksternal di akhir cakupan aplikasinya.
Ini adalah default Session, jadi penggabungan lingkungan Requests masih dapat memengaruhinya. Perhitungkan masukan proxy yang diwarisi ketika rute tetap diperlukan.
Gunakan URL yang gagal untuk membedakan penolakan spreadsheet, tantangan proxy, dan kegagalan endpoint kredensial. Token akses yang di-cache dapat membuat panggilan API berhasil tanpa menjalankan penyegaran sama sekali.