2014-06-19 24 views
5

Ben chrome uzantısı geliştirmek için Oauth kullanıyorum ve kullanıcı Google Hesabı ile giriş yapabilirsiniz. Aşağıda gibi kod jquery var. Ben de değilimGoogle Oauth'da undefined mülkünün 'yetkilendirmesi' okunamıyor mu?

html dosyasında js kütüphane yer:

<script src="js/jquery-2.1.1.min.js" type="text/javascript"></script> 

<script src="js/client.js"></script> 

ve sahip JS işlevi:

function handleAuthClick(event) { 
gapi.auth.authorize({ 
    client_id: clientID, 
    scope: scopes, 
    response_type: 'code token id_token gsession', 
    access_type: accessType, 
    immediate: false 
}, handleAuthResult); 
return false; 
} 

Benim sorun: Ben google hesabı ve buna gösteri ile giriş yapamıyorum hata: Uncaught TypeError: Cannot read property 'authorize' of undefined.

Not: html olarak çalıştırılırsam normal olarak giriş yapabilirim ancak krom uzantısı olarak kullanıldığında oturum açamıyorum.

+0

gapi ve gapi.auth değerini kontrol edin –

+0

JS dosyaları yüklerken herhangi bir ağ hatası var mı? – abraham

+1

Burada, bu komut dosyalarını ekliyorsunuz ve bu kodu çalıştırıyorsunuz – kalman

cevap

3

Gapi.auth hala başlatılmamış gibi görünüyor ve bunun nedeni, bu çağrı yapmadan önce ayarlamak için uygun adımlar zincirini izlemediniz. Yani gapi nesnesini başarıyla başlatırken herhangi bir adımı kaçırıp kaçırmadığınızı görmek için buraya bir örnek koyuyorum. İşte

<script type="text/javascript"> 
    (function(gapi) { 
     gapi.client.setApiKey(apiKey); // your variable for apiKey 
     window.setTimeout(checkAuth,1); 

     function checkAuth() { 
      gapi.auth.authorize({client_id: clientID, scope: scopes, immediate: true}, handleAuthResult); 
     } 

     function handleAuthResult(authResult) { 
      var authorizeButton = document.getElementById('id-of-your-login-button'); 
      if (authResult && !authResult.error) { 
       authorizeButton.style.visibility = 'hidden'; 
       makeApiCall(); 
      } else { 
       authorizeButton.style.visibility = ''; 
       authorizeButton.onclick = handleAuthClick; 
      } 
     } 

     function handleAuthClick(event) { 
      gapi.auth.authorize({ 
       client_id: clientID, 
       scope: scopes, 
       response_type: 'code token id_token gsession', 
       access_type: accessType, 
       immediate: false 
      }, handleAuthResult); 
      return false; 
     } 
    })(gapi); 
</script> 

gider güvenle sadece butonlara html kodunun altında vücut etiketinde bu komut dosyası etiketi koyabilirsiniz.

İlgili konular