2016-12-22 2 views
-1

Я хочу получить доступ к адресу электронной почты пользователей и профилю pic url в Ionic framework, используя логин gmail.Извлечь адрес электронной почты с помощью маркера доступа Google 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(); 
    } 
    }); 

как я могу принести пользователям адрес электронной почты и профайле, используя этот маркер доступа?

ответ

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)); 
      }); 
Смежные вопросы