Son birkaç gündür uzun süren bir gerçek zamanlı uygulama ile giderek artan sorunlu sorunlar görüyorum. Aşağıdaki adımları yürüttüm ve alt kısımdaki kod snippet'i uygulamadan ek hata ayıklama bilgisi içeriyor.Google Drive Gerçek Zamanlı API OAuth2 Yenileme Hataları
Sayfa ilk açıldığında, başarıyla bir OAuth belirteci ister ve gerçek zamanlı belgeyi [A] yükler. 50 dakika sonra (belirtecin sonlanmasından 10 dakika önce), yeni bir OAuth jetonunu başarıyla tekrar talep eder [B]. İlk belirtecin süresi dolduğunda, şu anda açık bağlantı 401 yetkisiz bir hata alır ve yeni bir oauth belirteci gerektirir [C]. Bu kendi başına yeni geçerli belirtecin [B] 'den kullanılması için güncellenmesi gerektiği gibi bir problem gibi görünüyor. Bununla birlikte, uygulama yine de bu gibi bir hataya karşı esnek olmalıdır - bu yüzden dokümanı [D] 'yi kapatarak ve tekrar açarak ve yeni bir OAuth jetonu alarak ele alınır. Ne yazık ki bu noktada, gerçek zamanlı API, access_token [E] için hatalar elde eden sonsuz bir döngüde oturur.
Tüm OAuth jetonları gapi.auth.authorize kullanılarak aynı kapsamda ve setToken çağrısı olmadan istenir. Daha önce setToken kullanarak denedim, ama aynı sorunları vardı.
Güncel Sorular Gerçek zamanlı API için OAuth belirtecini yenilemenin üstesinden gelmenin doğru yolu nedir? Bir dokümanı kapatırken ve yeniden açtığınızda sürücü API'lerinde dahili olarak tekrarlanan hataları nasıl önleyebilirim?
[A]
_aa: "1"
access_token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXz9AYBkyympssqI"
client_id: "XXXXXXXXXXXXXXXX.apps.googleusercontent.com"
cookie_policy: undefined
expires_at: "1373610287"
expires_in: "3600"
g_user_cookie_policy: undefined
issued_at: "1373606687"
response_type: "token"
scope: Array[2]
state: ""
token_type: "Bearer"
[B]
_aa: "1"
access_token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXV2kzG4EMUppi"
client_id: "XXXXXXXXXXXXXX.apps.googleusercontent.com"
cookie_policy: undefined
expires_at: "1373613288"
expires_in: "3600"
g_user_cookie_policy: undefined
issued_at: "1373609688"
response_type: "token"
scope: Array[2]
state: ""
token_type: "Bearer"
[C]
GET https://drive.google.com/otservice/bind?id=1B-XXXXXXXXXXXXXXXXXXXXX_nRizfqmT…&RID=rpc&SID=XXXXXXXXXXXXXXXXX&CI=0&AID=221&TYPE=xmlhttp&zx=ns6e5dr7rf4&t=1 401 (Unauthorized)
Drive Realtime API Error: token_refresh_required: The OAuth token must be refreshed.
[D]
[Close Realtime Document]
[Open Realtime Document]
_aa: "1"
access_token: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXMHzJXm2dF-"
client_id: "XXXXXXXXXXXXXX.apps.googleusercontent.com"
cookie_policy: undefined
expires_at: "1373613918"
expires_in: "3600"
g_user_cookie_policy: undefined
issued_at: "1373610318"
response_type: "token"
scope: Array[2]
state: ""
token_type: "Bearer"
[E]
[x100] Uncaught TypeError: Cannot read property 'o' of null
Teşekkürler!
tekrarlanan hata sorunu çözmek için yeterliydi. Hızlı cevabınız için teşekkür ederim! –