我想根据帐户名称/用户名制作一个简单的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
})
}
}
答案 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
它确实根据令牌定义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}