2014-10-17 28 views
1

我正在使用Google plus API從我的網站中的查看者處獲取電子郵件ID。Google登錄error-gapi.client.plus未定義

谷歌參考:https://developers.google.com/+/web/signin/add-button

問題是,當我點擊登入按鈕,我得到錯誤「類型錯誤:gapi.client.plus是未定義」在瀏覽器控制檯。

如何解決它。

我的代碼:

 <script src="https://apis.google.com/js/client:plusone.js?onload=signinCallback" type="text/javascript"></script> 

     <span id="signinButton"> 
     <span class="g-signin" 
      data-callback="signinCallback" 
      data-clientid="*****************.apps.googleusercontent.com" 
      data-cookiepolicy="single_host_origin" 
      data-scope="profile"> 
     </span> 
    </span> 

function signinCallback(authResult) { 

    gapi.client.load('plus', 'v1',function(){}); 

if (authResult['status']['signed_in']) { 
    alert("login success"); 
    document.getElementById('signinButton').setAttribute('style', 
      'display: none'); 

    var request = gapi.client.plus.people.get({ 
     'userId' : 'me' 
    }); 
    request.execute(function(resp) { 
     var email = ''; 
     if(resp['emails']) 
     { 
      for(var i = 0; i < resp['emails'].length; i++) 
      { 
       if(resp['emails'][i]['type'] == 'account') 
       { 
        email = resp['emails'][i]['value']; 
       } 
      } 
     } 
     alert("email ="+email); 
     console.log('ID: ' + resp.id); 
     console.log('Display Name: ' + resp.displayName); 
     console.log('Image URL: ' + resp.image.url); 
     console.log('Profile URL: ' + resp.url); 
    }); 
} else { 
    alert("login unsuccessful"); 
    console.log('Sign-in state: ' + authResult['error']); 
} 

}

回答

0

我有這個問題,

我相信這個問題是在這裏

gapi.client.load('plus', 'v1',function(){}); 

第三個參數是空的,這谷歌宣佈作爲可選的,但它往往會因爲未定義而出錯,因爲它沒有被使用或被達到正在嘗試使用它的函數。

相反,您可以嘗試在第三個參數中嵌套需要gapi.client的函數,或者在那裏引用外部函數。

這裏是我做過什麼:

Google signin callback - get name and email