尝试使用 Angular 中的 Google People API 获取生日和性别

2024-01-18

我已经花了几个小时尝试这样做,但我永远无法获得我想要获得的数据。 我需要以其他方式提出请求吗?这是我的代码:

doGoogleLogin(){
    return new Promise<any>((resolve, reject) => {
      let provider = new firebase.auth.GoogleAuthProvider();
      provider.addScope('profile');
      provider.addScope('email');
      provider.addScope('https://www.googleapis.com/auth/user.birthday.read');
      provider.addScope('https://www.googleapis.com/auth/user.gender.read');
      this.afAuth.auth
      .signInWithPopup(provider)
      .then(res => {
        resolve(res);
        console.log(res.additionalUserInfo.profile['id']);
        this.http
        .get("https://people.googleapis.com/v1/people/"+res.additionalUserInfo.profile['id']+"?key=(a valid api key)&personFields=birthdays,genders")
        .subscribe(data => (console.log(data)));;
      }, err => reject(err))
    })
  }

我通常从http请求中获取的数据只是:

{
  "resourceName": "people/101296298961277932659",
  "etag": "%EgQBBzcuGgQBAgUH"
}

我应该再得到 2 个包含出生日期和性别的对象,但它从未发生过。


使用 Sebas 他的答案,我成功地让 People API 与我的 Firebase 代码一起工作,我将在此处将其发布给其他人:

First 在开发者控制台中启用 API https://console.developers.google.com/apis/library/people.googleapis.com.

    import firebase from 'firebase/app'

    let provider = new firebase.auth.GoogleAuthProvider()
    provider.addScope('profile')
    provider.addScope('email')
    provider.addScope('https://www.googleapis.com/auth/user.birthday.read')
    provider.addScope('https://www.googleapis.com/auth/user.gender.read')

    firebase
        .auth()
        .signInWithPopup(provider)
        .then(res => {
          fetch(
            `https://people.googleapis.com/v1/people/${res.additionalUserInfo.profile.id}?personFields=birthdays,genders&access_token=${res.credential.accessToken}`
          ).then(response => console.log(response))
        })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使用 Angular 中的 Google People API 获取生日和性别 的相关文章

  • 打字稿标记的枚举获取值

    我在下面标记了枚举 enum PermissionEnum SU 1 lt lt 0 1 Administrator 1 lt lt 1 2 User 1 lt lt 2 4 对于给定值 6 我怎样才能得到 string gt 管理员 用户
  • 元素上的 *ngIf 和 *ngFor [重复]

    这个问题在这里已经有答案了 我遇到的情况是 我需要在同一元素上使用 ngIf 和 ngFor 指令 我在 stackoverlow 上找到了很多答案 但没有一个适合这种情况 我有一个表 在其中循环对象数组并在标题中动态写入单元格 table
  • Angular Http 客户端 - 如何将嵌套参数对象传递给 GET API

    我正在使用最新版本的角度 8 我正在将我的 Http 请求从原始 http 转换为新的 http 客户端 我正在调用 GET API 其中我通过以下方式发送嵌套参数 let data any filters 4e9bc554 db54 44
  • Angular2:setTimeout仅调用一次

    我正在 Angular2 中实现需要使用的功能setTimeout My code public ngAfterViewInit void this authenticate loop private authenticate loop s
  • Visual Studio 代码断点在使用 TypeScript 的 Node.js 上不起作用

    我尝试了很多解决方案 但没有人适合我 代码执行 但我无法放置断点并调试它 请你帮助我好吗 我尝试过以下 VSCode 配置脚本 type node request launch name Typescript Node JS program
  • 如何将 zingchart 实现到 Angular2 中

    我有一个现有的项目 我想在其上实施 zingcharts 我尝试了 3 个不同的教程 主要来自 https blog zingchart com 2016 07 19 zingchart and angular 2 charts back
  • 将 SCSS 与使用 angular-cli 创建的 Angular 库结合使用

    我创建了一个角度库项目 我想在其中使用 SCSS 样式 所以我已经配置了 ng config schematics schematics angular component styleext scss 这进入了角度 json file sc
  • 如何使用 Web 套接字和 Angular CLI 设置代理

    我有一个使用 Angular CLI 构建的简单 Web 应用程序 我希望它使用网络套接字与后端通信 我已经编写了后端 并使用一个简单的 index html 页面进行了测试 服务器可以在套接字上发送和接收该页面 在我的 angular c
  • TypeScript 代码上的 JSlint - 它还能教我编写更好的代码吗?

    在 TypeScript 生成的代码上使用 JSlint 还能教我编写更好的代码吗 如果是 您能提供一两个例子吗 Thanks 没有 由于生成的 javascript 在不良打字稿 良好打字稿之间是一致的 例如缺少分号 对于打字稿 有一个
  • 如何在每个组件完成加载后在 Angular 2 中运行 jquery 函数

    我已经尝试了所有生命周期挂钩 但无法实现所需的结果 我需要的结果是触发一个函数 该函数在加载每个元素 组件 后初始化用于单个页面上不同元素的许多 jquery 插件 假设你有这个结构 主页 滑块 小部件 产品旋转器 ETC 这些元素中的每一
  • Angular 2 runOutsideAngular 仍然改变 UI

    从我的理解来看runOutsideAngular https angular io docs ts latest api core index NgZone class html runOutsideAngular anchor 如果我需要
  • 如何在 Angular @Input 中仅接受预定义值

    我的问题是 我在 a 中收到一个字符串值作为组件的参数 但我想限制可以用作参数的值 就像enum I use Input type string 但是在组件中 一切都可以引入type正如我之前所说 我需要将其限制为 3 个选项 例如Enum
  • 如何通过自定义指令动态添加组件

    我想编写一个自定义指令 它将根据 div 内的某些逻辑动态添加组件 我在其中使用了自定义指令 我尝试使用 componentFactoryResolver 和 viewContainerRef createComponent 动态添加组件
  • 如何将 Laravel 5.4 与 Angular 4 集成

    我知道如何创造完整的拉拉维尔 5 4自己的项目 我也知道如何使用创建 SPA角4 Problem 我不知道如何将 Laravel 与 Angular 集成 另外 我想使用 Laravel 5 4 作为后端 使用 Angular 4 作为前端
  • D3、TS 和 Angular 2

    我正在尝试将 D3 v4 与 Angular 2 Typescript 一起使用 我目前正在研究 D3 v4 我能够遵循 stackoverflow 中类似问题的一些答案 但没有成功 我已经导入了大部分 D3 库及其类型 我使用的是 TS
  • 从回调中访问状态

    我在从回调访问组件状态时遇到问题 国家的价值num更改正确 但此类更改对于加载时定义的回调函数不可见 import React useState from react class MyObject callback gt void cons
  • 模板解析:找不到管道

    我收到错误 模板解析错误 找不到管道 amDateFormat 这是我的app module ts import NgModule from angular core import MomentModule from angular2 mo
  • 使用属性和泛型类型获取“keyof”中项目的类型

    我想定义一个具有泛型类型的接口 该接口必须接受一个对象 其键作为 根字段名称 值作为对象数组 该数组定义一些子字段 其键作为子字段的名称 type 作为字段值的类型 像这样的东西 interface Inputs emails email
  • 订阅内循环订阅?

    我目前正在与订阅内的 multiples forEach 订阅作斗争 我正在尝试检索对象列表 然后通过它们的 ID 检索它们的图像 目前我已经这样做了 this appTypeService get pipe map apps AppTyp
  • Angular 模板验证表单

    我正在研究表单验证 我正在使用模板驱动的验证表单 其编码如下 现在工作正常 但是当我尝试添加时 username ngModel and password ngModel 在创建验证类的输入中 它向我显示一个错误 也请找到该错误 div c

随机推荐

  • 自动映射器 - 将对象与集合映射

    使用自动映射器 我需要映射以下类的对象 public class RemoteClass public IEnumerable
  • 如何处理“有符号/无符号不匹配”警告 (C4018)?

    我使用大量编写的计算代码c questions tagged c 2b 2b考虑到高性能和低内存开销 它使用STL容器 主要是std vector 很多 并且几乎在每个函数中迭代该容器 迭代代码如下所示 for int i 0 i lt t
  • 这是使用 thenFetch() 加载多个集合的正确方法吗?

    我正在尝试使用急切地加载所有集合NHibernate 3 阿尔法 1 http nhforge org media p 690 aspx 我想知道这是否是使用 thenFetch 的正确方法 具有复数名称的属性是集合 其他的只是一个单一的对
  • Django 如何使用 django.contrib.auth 添加注销成功消息?

    我没有使用all auth 我正在使用标准身份验证系统和 url 提供的django contrib auth 我还确保注销时用户会自动重定向到登录页面 LOGOUT REDIRECT URL login 我想添加一条消息 以便用户知道他们
  • IntelliJ 检查给出“无法解析符号”,但仍编译代码

    平台 IntelliJ社区版10 0 3SDK jdk1 6 0 21操作系统 Windows 7 所以我在使用 IntelliJ 时遇到了一个奇怪的情况 这让我完全陷入困境 我设置了一个 Maven 项目 并将 log4j 添加为 pom
  • 尝试使用selenium截屏时出现空指针异常[重复]

    这个问题在这里已经有答案了 我编写了一个Java类 它使用selenium webdriver来快速浏览网站并测试各种功能 我还编写了一个单独的类 它将用于执行 takeScreenshot 方法 一旦测试命中执行截图方法的代码 浏览器就会
  • 无法创建推力装置矢量

    所以我尝试开始 GPU 编程并使用 Thrust 库来简化事情 我创建了一个测试程序来使用它并查看它是如何工作的 但是每当我尝试创建具有非零大小的推力 device vector时 程序就会崩溃并显示 运行时检查失败 3 变量 结果 正在使
  • 汇编vim语法高亮

    默认的程序集语法文件不能很好地工作 在网上搜索有关 Gas 程序集的信息时 我没有找到任何有关 vim 的 Gas AT T 语法文件的信息 有人发现这个吗 我无法编写自己的语法文件 http img168 imageshack us im
  • 如何在R中将时间格式转换为数字

    示例如下所示 A tibble 10 x 3 trip id start time end time
  • SonarQube 在代码分析中忽略 getter/setter

    SonarQube 仪表板中是否有允许忽略 getter 和 setter 的设置 这听起来是一个比在代码库中的每个方法上编码 nopmd 更好的选择 我的代码库有很多这样的东西 它们极大地降低了 Sonarqube 仪表板中报告的单元测试
  • 更改 Electron 中可拖动区域上的光标

    我正在 Electron 中制作一个应用程序 我有一个无框窗口 我有一些顶部区域 webkit app region drag但当我这样做时 不会改变 显然它在这个片段中是不可拖动的 因为它不是一个电子应用程序 但基本上光标在可拖动的元素上
  • 使用matlab配色方案将float转换为RGB

    例如 如果我有一个浮动0 568 浮动保证是0 gt 1 有没有办法将其转换为 RGB 值 双精度 1 0 1 0 1 0 or int 255 255 255 在当前的 matlab 配色方案 即正常 热 HSV 等 下 你可以试试这个
  • Intel x86 - 中断服务例程责任

    我没有真正意义上的问题 但我会尽力澄清内容问题 假设我们有一个微内核 PC Intel x86 32 位保护模式 中断描述符表 IDT and 中断服务程序 ISR 对于每个CPU异常 ISR 被成功调用 例如Division by Zer
  • 从 C 矩阵到现代 OpenGL 中的纹理?

    Problem 我正在尝试使用 OpenGL 用 C 编写一个简单的程序 这将允许 绘制 2D C 数组 int 32 位整数 根据调色板 目前 我还没有做到这一点 还很远 我正在学习如何将 32 位有符号整数数组发送到 GPU 并以某种方
  • {{ }} 和 {!! 之间有什么区别? !!} 在 Laravel Blade 文件中?

    在laravel框架中我们可以使用blade在html文件中添加PHP代码 我们正在使用两者 and Laravel 的 Blade 文件中的语法 它们之间有什么区别 Blade 语句通过PHP的htmlentities函数自动发送 以防止
  • 制作 PIE 对象时,不能使用针对符号“G8”的重定位 R_X86_64_32;使用-fPIE重新编译

    我正在尝试将 lambda 表达式从 schema 编译为 llvm ir 但在处理与位置无关的代码时遇到了问题 source lambda x display x target bunch of declares define SObj
  • 更新Map字段-Flutter

    如何更新 isVerified Boolean 字段的数据 个人信息是地图包含地址 然后经过验证 更新isVerified 您必须执行以下操作 Firestore instance collection collection Name do
  • 我们可以在 Spring Boot 中使用多个 kafka 模板吗?

    在我的 spring boot kafka 发布者应用程序中 我想提供对以 String json 或字节格式发布消息的支持 因为我想同时提供对 json 和 avro 的支持 但是 Spring Boot 中的 Kafka 模板让我们只定
  • 有没有办法在 R 中为 Word 制作漂亮的表格?

    我问我的问题 这是我最后的希望 我必须用 Word 制作一份报告 我从事 R Markdown 工作 必须生成许多表格 我希望我的桌子很漂亮 但我尝试过的一切 pander KableExtra flextable 不工作 我的结果来自co
  • 尝试使用 Angular 中的 Google People API 获取生日和性别

    我已经花了几个小时尝试这样做 但我永远无法获得我想要获得的数据 我需要以其他方式提出请求吗 这是我的代码 doGoogleLogin return new Promise