2013-03-13 60 views
0

我正在使用谷歌登錄自定義網站。在這裏,我寫的代碼,它如何從gmail中取回用戶名/登錄名?

var sOAuthServiceEndPoint = "https://accounts.google.com/o/oauth2/auth?scope=http://gdata.youtube.com https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email&response_type=token&"; 
var sOAuthRedirectURL = "http://example.com/testpage/test.html"; 
var termsAndCondURL = "termsandcondition.html"; 
var sOAuthClientID = "294016263542.apps.googleusercontent.com"; 
var sAuthenticationURL = sOAuthServiceEndPoint + "redirect_uri=" + sOAuthRedirectURL + "&client_id=" + sOAuthClientID; 

即使我使用了以下功能

function fnOnLoad() { 
     //alert("Form Loaded"); 
     var sAccessToken = ''; 
     var params = {}, queryString = location.hash.substring(1),regex = /([^&=]+)=([^&]*)/g, m; 
     while (m = regex.exec(queryString)) { 
      params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); 
     } 
     if(params.error){ 
      if(params.error == "access_denied"){ 
       sAccessToken = "access_denied"; 
       alert(sAccessToken); 
      } 
     }else{ 
       sAccessToken = params.access_token; 
       alert(sAccessToken); 
     } 
     window.opener.fnAuthorisationSuccess(sAccessToken); 
     window.close(); 
    } 

它的工作,併成功地將重定向,我想其他頁面的訪問令牌。但我的問題是如何檢索用戶登錄名..?

我正在使用javascript。

由於提前

+0

難道你沒有獲得一個訪問令牌,你可以從中查詢這些信息嗎? – 2013-03-13 06:14:35

+0

是的,我得到了訪問令牌 – 2013-03-13 06:19:59

+0

那麼你有沒有試圖用它來拉帳戶信息? – 2013-03-13 06:21:56

回答

1

這可以在documentation找到。

在您的應用程序獲取訪問令牌並且(如有必要)驗證它之後,您可以在向Google API發出請求時使用該訪問令牌。如果訪問令牌請求中包含https://www.googleapis.com/auth/userinfo.profile作用域,則可以使用訪問令牌通過調用UserInfo端點來獲取用戶的基本配置文件信息。

端點:https://www.googleapis.com/oauth2/v1/userinfo

返回用戶基本資料信息,包括姓名,用戶ID,性別,出生日期,照片,語言環境和時區。如果請求中存在https://www.googleapis.com/auth/userinfo.email作用域,則用戶的電子郵件也將出現在響應中。如果電子郵件已經過驗證,那麼還有一個字段表示該電子郵件是已驗證的地址。

相關問題