Github Api,获取用户电子邮件

时间:2017-05-19 20:59:26

标签: api github request axios

我想根据帐户名称/用户名制作一个简单的api GET请求来获取用户电子邮件。 我正在使用axios,当我使用此https://api.github.com/users/[username]发出GET请求时 我收到了我需要的一切(存储库,粉丝......),除了用户电子邮件。它始终为空。对我来说,仅仅获取用户的电子邮件就足够了,因为无论它设置为什么,它都将始终返回null。我正在读,也许我需要授权。我在我的github帐户上创建了个人访问令牌,但我该如何使用它?什么是获取用户电子邮件的最佳方式?

这就是我现在所拥有的

import axios from 'axios'

const REQUEST = 'https://api.github.com/users/'


module.exports = {
  getData: (accountName) => {
    const encodedAccountName = encodeURIComponent(accountName)
    const requestUrl = `${REQUEST}${encodedAccountName}`

    return axios.get(requestUrl).then((res) => {
      return res
    })
  }
}

3 个答案:

答案 0 :(得分:2)

确定。我设法让这个像这样工作。我只是将带有personalAccessToken的标头与请求一起发送。您可以在设置/个人访问令牌/生成新令牌下的github页面上获取个人访问令牌,然后选择用户:电子邮件范围。现在将ENV变量用于访问令牌会很好。

import axios from 'axios'

const REQUEST = 'https://api.github.com/users/'

var config = {
  headers: {'Authorization': 'token 847762643...'}
}

module.exports = {
  getData: (accountName) => {
    const encodedAccountName = encodeURIComponent(accountName)
    const requestUrl = `${REQUEST}${encodedAccountName}`

    return axios.get(requestUrl, config).then(res => {
      return res
    })
  }
}

答案 1 :(得分:0)

您可以查看Requestable.js

中的GitHub.js tool对象

它确实根据令牌定义AuthorizationHeader:

  this.__apiBase = apiBase || 'https://api.github.com';
  this.__auth = {
     token: auth.token,
     username: auth.username,
     password: auth.password
  };
  if (auth.token) {
     this.__authorizationHeader = 'token ' + auth.token;
  } else if (auth.username && auth.password) {
     this.__authorizationHeader = 'Basic ' + Base64.encode(auth.username + ':' + auth.password);
  }

答案 2 :(得分:-1)

我能够使用以下代码从GitHub API获取用户电子邮件。

https://api.github.com/user/emails?access_token=${token}