使用访问令牌Google Ionic获取电子邮件地址

时间:2016-12-22 06:47:18

标签: javascript cordova ionic-framework oauth gmail-api

我想使用gmail登录访问Ionic框架中的用户电子邮件地址和个人资料图片网址。

以下oauth代码有助于登录用户并返回访问令牌

 $http.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
 var requestToken = "";
 var accessToken = "";
 var clientId = "example";
 var clientSecret = "xxxx";
 $scope.LoginwithGoogle = function() {
   var ref = window.open('https://accounts.google.com/o/oauth2/auth?client_id=' + clientId + '&redirect_uri=http://localhost/callback&scope=https://www.googleapis.com/auth/urlshortener&approval_prompt=force&response_type=code&access_type=offline', '_blank', 'location=no');
   ref.addEventListener('loadstart', function(event) {
    if ((event.url).startsWith("http://localhost/callback")) {
     requestToken = (event.url).split("code=")[1];
     $http({
       method: "post",
       url: "https://accounts.google.com/o/oauth2/token",
       data: "client_id=" + clientId + "&client_secret=" + clientSecret + "&redirect_uri=http://localhost/callback" + "&grant_type=authorization_code" + "&code=" + requestToken
      })
      .success(function(data) {
       var accessToken = data.access_token;
      })
      .error(function(data, status) {
       alert("ERROR: " + data);
      });
     ref.close();
    }
   });

如何使用此访问令牌获取用户电子邮件地址和个人资料照片?

1 个答案:

答案 0 :(得分:0)

Google登录成功后,请使用以下代码从访问令牌中获取用户的公开详细信息。

$http.get("https://www.googleapis.com/plus/v1/people/me", {
                params: {
                    access_token: result.access_token
                }
            })
            .then(function(res) {

                console.log(res);
            }, function(error) {
                alert(JSON.stringify(error));
            });