google api javascript 登录用户的电子邮件

2023-11-25

有许多资源和堆栈溢出问题与我将要问的类似但不完全相同。我将在这里重新讨论一些解决方案并进行解释。

我有一个已经登录 Google 的用户。我所说的登录是指手动登录并且存在 cookie。我的应用程序未登录。

我只需要获取电子邮件地址。

我见过 3 种方法可以做到这一点,但都不适合我。

Way #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());
}

Way #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);
  });
});

Way #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 密钥。但用户已经登录,我没有也无法获取令牌。

如何获取已登录用户的电子邮件?

Thanks


虽然是一个老问题..这可能会有所帮助..以防万一..

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() 启动。根据用于实例化的内容,您可以使用其中之一来获取配置文件详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

google api javascript 登录用户的电子邮件 的相关文章

随机推荐

  • 如何使用 C# 从字符串中获取特定字符位置

    这是非常基本的问题 但我无法找到特定角色的位置 例如 string a ABCDE 我想要上面字符串中 E 的位置 Use IndexOf var pos a IndexOf E
  • Intellij idea插件开发-热重载?

    我正在为 intellij idea 创建一些插件 每次更改代码时 我都需要重新运行应用程序 有类似热重载或类似的东西吗 或者更有效的方法 我相信您正在寻找运行 gt 重新加载更改的类 通常只要进行一些小的改变就可以很好地工作
  • 使用 Jquery 进行时间验证

    我在用jquery 验证插件验证我的表格 要验证文本输入 我所做的就是编写class required 在属性中 它为我进行验证 现在我正在尝试验证用户必须输入时间 如 02 45 00 AM 的输入 但我正在使用的插件没有任何时间验证功能
  • 如何在 DropWizard 中维护用户会话?

    我正在寻找一个持久会话管理器 它将会话保存在可与 DropWizard 一起使用的文件系统 如 PHP 上 我看到有一个Environment getSessionHandler 但我没有看到任何相关文档 我可以自己写 但我希望能吃到一顿熟
  • 尽快将PageTransformer应用到PagerView

    我将 PageTransfomer 应用于 ViewPager 效果很好 但我想在将 PageTransformer 设置为 ViewPager 后立即启动页面的转换 我已经尝试过 设置当前项目 int setCurrentItem int
  • 使用 Python 时,这段代码中的“wb”是什么意思?

    Code file pinax media a jpg wb 文件模式 写入和二进制 由于您正在编写 jpg 文件 因此看起来不错 但是如果你想读取 jpg 文件 你需要使用 rb 更多信息 在 Windows 上 b 附加到模式后 以二进
  • 将 JTextArea 复制为“text/html”DataFlavor

    我有一个JTextArea我正在使用Highlighter按照下面的 SSCCE 对我的某些文本应用一些语法突出显示 import java awt import java awt event import javax swing impo
  • 如何在 Activity 和 widget 之间共享数据?

    我阅读了 hellowidget 教程和开发指南的应用程序小部件 然后我知道如何创建一个包含按钮或文本或其他内容的小部件 但我真正想做的是让它与我的应用程序交互 例如 我想创建一个具有文本视图的小部件 当我单击它时 它会向我的活动发送一个
  • 查找已安装的 JDBC 驱动程序

    我正在用 Java 编写一个数据库验证工具 并具有首选项屏幕 以便用户可以定义他们的数据库连接 该工具至少应该能够处理 DB2 Oracle Postgresql 和 Mysql 我真正想要的是能够向用户展示他们已安装的 jdbc 驱动程序
  • 如何在 iOS 9 中的 UIAlertController 中添加按钮

    我们如何使用UIAlertView在 iOS 9 中以及如何添加按钮UIAlertController UIAlertController alert UIAlertController alertControllerWithTitle T
  • 为什么 Eclipse 的 Android 设备选择器不显示我的 Android 设备?

    我正在使用 Eclipse 的 Android 插件 当我尝试通过真实设备运行我的程序时Android 设备选择器 我的手机未列为设备 我已经更新了 Eclipse 所有 Android 软件包和 USB 驱动程序 但它仍然没有显示 我的手
  • 如何让SceneView的背景透明?

    我想打开一个 3D 模型并使其背景透明 以便我可以看到 SceneView 后面的 UI 我试过这段代码 但 sceneView 变成白色 不透明 struct ModelView View var body some View ZStac
  • Spring Data Cassandra LocalDateTime 转换

    我正在开发一个项目 其中我们有一个实体 我们想要保留 LocalDateTime 类型的字段 我们知道 cassandra 没有对此类型转换的本机支持 我们使用 Spring 对转换器的支持创建了自己的自定义转换器 然而 Spring Da
  • Android 启用和禁用 GPS [重复]

    这个问题在这里已经有答案了 可能的重复 像 Tasker 一样以编程方式启用 GPS 我是一名初学者 Android 开发者 我想通过单击按钮来启用和禁用 GPS 而不运行此意图 intente in new Intent android
  • 如何使用Python中的套接字响应代理服务器中的“CONNECT”方法请求?

    我目前正在使用 httplib 编写代理服务器 当我尝试连接到 HTTPS 网站 例如 facebook 和 google 时 我的客户端向我发送 CONNECT 请求 如下所示 CONNECT www google co il 443 H
  • PHP 命名空间可以包含变量吗?

    PHP 命名空间可以包含变量吗 如果是这样 如何实现这一点 不可以 您可以在声明命名空间后设置变量 但变量将始终存在于全局范围内 它们永远不会绑定到名称空间 您可以从缺少任何名称解析描述的情况中推断出这一点 常见问题解答 有关命名空间您需要
  • 不使用 NewID() 的 SQL 上的随机数

    您好 我想生成一个唯一的随机数 而不使用以下语句 Convert int CHECKSUM NEWID 100000 AS ITEM 因为当我在 from 上使用连接子句时 它通过使用 NEWID 生成双寄存器 我使用 SQL Server
  • 如何在MySQL中进行级联更新?

    Let s look at this example database 正如我们所看到的 person 取决于城市 person city id 是外键 我不删除行 只是将它们设置为非活动状态 活动 0 将城市设置为非活动状态后 如何自动将
  • 默认导出类的新实例

    下面的代码片段每次导入时都会生成新实例吗 1st implementation class ConnectionManager export default new ConnectionManager 2nd implementation
  • google api javascript 登录用户的电子邮件

    有许多资源和堆栈溢出问题与我将要问的类似但不完全相同 我将在这里重新讨论一些解决方案并进行解释 我有一个已经登录 Google 的用户 我所说的登录是指手动登录并且存在 cookie 我的应用程序未登录 我只需要获取电子邮件地址 我见过 3