尽管 user:email 范围,Github 用户电子邮件为空

2024-02-25

我正在关注Github 的 OAuth 流程 https://developer.github.com/v3/oauth/,并获取一个访问令牌,使我能够访问用户的电子邮件范围。当我用代码交换访问令牌时,使用https://github.com/login/oauth/access_token https://github.com/login/oauth/access_token端点,我得到以下响应:

{
  access_token: '83f42..xxx’,
  token_type: 'bearer',
  scope: 'user:email' 
}

看起来很棒。因此,我发出此请求,使用令牌来获取我的用户数据:

Accept-Language: en-us
Accept: application/json
Authorization: token 83f42..xxx
Accept-Encoding: gzip, deflate

GET https://api.github.com/user

我确实得到了我的用户对象作为响应,但电子邮件属性为空。还有其他人遇到这个问题吗?


我找出了为什么会发生这种情况以及如何解决它。根据docs https://developer.github.com/v3/users/#get-a-single-user:

注:返回的邮箱为用户公开可见的邮箱地址 (或者null如果用户未在其帐户中指定公共电子邮件地址 轮廓)。

在您的 GitHub 配置文件设置中,在公共邮箱,一些用户(包括我自己)将该选项设置为“不显示我的电子邮件地址”。致电给/user仅返回公共电子邮件地址,因此如果用户不希望显示该地址,API 将尊重这一点。

要获取用户的电子邮件地址(无论其是否公开),请使用以下调用:/user/emails https://developer.github.com/v3/users/emails/#list-email-addresses-for-a-user。您将按照与访问令牌完全相同的方式使用访问令牌/user要求:

Accept-Language: en-us
Accept: application/json
Authorization: token 83f42..xxx
Accept-Encoding: gzip, deflate

GET https://api.github.com/user/emails

这次调用给了我以下 JSON 响应:

[
  {
    "email": "use[email protected] /cdn-cgi/l/email-protection",
    "primary": true,
    "verified": true
  }
]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尽管 user:email 范围,Github 用户电子邮件为空 的相关文章

随机推荐

  • 从node-webkit访问USB设备?

    我正在构建一个需要在所有 3 个主要桌面环境 Windows Mac 和 Linux 上运行的 Node WebKit 应用程序 我需要我的应用程序连接到插入的 USB 设备 但我在精确计算时遇到了一些麻烦如何解决这个问题 是否有一个适用于
  • 在powerpoint中使用vba将两个形状合并为并集

    我正在尝试使用 union 属性将两个相同的形状合并为一个 编译代码时 它显示对象 commandbar 的方法 executemso 失败 我是 vba 新手 所以如果有人帮助我解决这个问题那就太好了 Sub ShapesUnion Di
  • 在Jboss wildfly和docker中使用cli时出现权限错误

    我扩展了一个 docker 镜像 在构建 dockerfile 时 我调用 Wildfly CLI 添加数据源 然后 当我尝试运行 dockerfile 时 出现以下错误 appui dev local appui dev local JB
  • Rails 3.2 中每个模型是否可以有多个夹具文件?

    在 Rails 3 2 中 给定的 ActiveRecord 对象是否可以有多个固定文件 客户要求将测试数据写入固定装置中 但也希望它们易于管理 我想通过引入第二组来稍微分割一下固定装置 原始版本将包括 需要 渲染任何内容 我无法通过谷歌找
  • 重写 git 历史记录,使 crlf 保持一致

    我有一个 git 存储库 其中有 LF 和 CRLF 文件的细微变化 在进行可能的切换之前 我想重写父提交和当前提交具有 不同 LR CRLF 编码的提交 所以我尝试了以下 一行 稍作编辑 我尝试运行todos如果文件的父版本包含 CR g
  • 通过 destruct+move 构造进行的移动分配安全吗?

    这是使用移动构造函数为大多数类定义移动赋值的一种非常简单的方法 class Foo public Foo Foo foo you still have to write this one Foo operator Foo foo if th
  • 显示底部导航栏但未选择任何项目

    这是我的底部导航栏 现在我想显示底部导航栏 但最初没有选择它的任何项目 当我将 selectedIndex 设置为 null 时 我收到错误 有什么办法可以实现这个目标吗 int selectedIndex 0 BottomNavigati
  • “Help”字符串变量替换“configure --help”

    我有一个字符串 我想多次使用它来输出configure help 所以我尝试做这样的事情configure ac AC ARG ENABLE foobar AS HELP STRING enable foobar foobar help s
  • Jest、Typescript、ts-jest:覆盖范围略有不正确

    我正在使用 TypeScript Jest 和ts jestNPM 模块 当我运行测试时 我确实获得了一定的覆盖范围 但 HTML 报告不太正确 此外 某些函数被标记为未经测试 即使它们确实被调用 我的package json设置如下 je
  • 在 OCaml 中的 let 命令(即 let _ = ... in)中使用下划线通配符有副作用吗?

    使用 OCaml 时 我几乎总是使用下划线通配符let exp 特别是当结果exp并不重要 重要的是里面的计算 例如 let print endline abc in let a a 1 in let do some thing in 所以
  • 具有不同身份验证标头的 HttpClient 单实例

    鉴于 net HttpClient 的设计考虑到了重用 并且旨在长寿 http chimera labs oreilly com books 1234000001708 ch14 html and 已报告内存泄漏 https stackov
  • MS SQL Server - 将结果导出到不带“NULL”的文件

    我正在使用 SQL Server Management Studio 将查询结果导出为文本 我想导出结果而不在分隔符之间打印字符 NULL 例如 代替 NULL 我想导出 感谢您的帮助 只需简单地使用 ISNULL someColumn 在
  • 正则表达式匹配跨平台换行符

    我的程序可以接受具有换行符 n r n 或 r 的数据 例如 Unix PC 或 Mac 样式 构造匹配任何编码的正则表达式的最佳方法是什么 或者 我可以在输入上使用 universal newline 支持 但现在我有兴趣看看正则表达式是
  • 如何处理已释放的持久卷?

    TL 博士 我不知道删除 PVC 后如何访问数据 以及为什么删除 PVC 后 PV 不会消失 我正在采取的步骤 手动在GCE中创建磁盘 gcloud compute disks create size 5Gi disk for rabbit
  • iPad半透明状态栏?

    iPad有没有办法让状态栏半透明 尝试执行此操作时出现此错误 UIStatusBarStyle Black Translucent is not available on this device iPad不支持半透明状态栏 在 iPad 设
  • Android SupportMapFragment 无法看到片段内的地图

    我试图在代码中将 SupportMapFragment 添加到 FrameLayout 中 但出现空指针异常 My Code 主要片段 public class MainFragment extends FragmentActivity O
  • 将部分视图加载到主视图 AngularJS

    我有一个部分视图 我计划将其包含在不同的页面中 我尝试了以下方法来加载部分视图 但该视图不显示模型中存储的值 角度控制器 This gets the required data as JSON AdminService getSetting
  • 如何检查是否至少有一个 RadioButtonList 选择了一项?

    我有20个RadioButtonList位于页面上 我需要创建一种验证方法以确保至少其中之一RadioButtonLists 已选择一个项目 我需要为此使用什么样的验证 EDIT 根据评论和澄清更新了问题 如果您要验证多个RadioButt
  • 如何删除 Android 上的导航栏?

    当我在 Galaxy Nexus 上全屏收听 YouTube 视频时 右侧的导航栏会在几秒钟后消失 该栏包含 后退 主页 和 最近使用的应用程序 按钮 当用户在我的应用程序中观看视频时 我想做同样的事情 隐藏导航栏的代码是什么 更新 这是我
  • 尽管 user:email 范围,Github 用户电子邮件为空

    我正在关注Github 的 OAuth 流程 https developer github com v3 oauth 并获取一个访问令牌 使我能够访问用户的电子邮件范围 当我用代码交换访问令牌时 使用https github com log