有许多资源和堆栈溢出问题与我要问的问题相似,但并不完全相同。我将在这里重述一些解决方案并对它们进行解释。
我有一个已经登录到Google的用户。我说的登录是指手动登录并且cookie存在。我的应用程序没有登录。
我只需要得到电子邮件地址。
有3种方法可以做到这一点,我已经见过,但都不适合我。
方法# 1:
auth2 = gapi.auth2.getAuthInstance();
if (auth2.isSignedIn.get()) {
var profile = auth2.currentUser.get().getBasicProfile();
console.log('ID: ' + profile.getId());
console.log('Full Name: ' + profile.getName());
console.log('Given Name: ' + profile.getGivenName());
console.log('Family Name: ' + profile.getFamilyName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail());
}
方法# 2:
gapi.client.setApiKey(API_KEY);
gapi.client.load("plus", "v1", function() {
gapi.client.plus.people.get({ userId: "me" }).execute(function(resp) {
// Shows profile information
console.log(resp);
});
});
# 3:
gapi.client.load('oauth2', 'v2', function () {
gapi.client.oauth2.userinfo.get().execute(function (resp) {
// Shows user email
console.log(resp.email);
})
});
对于方法#2和方法#3,堆栈溢出表示您必须使用令牌而不是api密钥。但是用户已经登录了,我没有也无法获得令牌。
如何获取已登录用户的电子邮件?
谢谢
虽然是一个老问题…这可能会有帮助……含有. .
var auth2 = gapi.auth2.getAuthInstance();
var profile = auth2.currentUser.get().getBasicProfile();
console.log(profile.getName());
console.log(profile.getEmail());
实例可以由gapi.auth2.getAuthInstance()或gapi.auth2.init()发起。根据用于实例化的内容,您可以使用其中任何一种来获取配置文件详细信息。