Github Api,获取用户电子邮件
Github Api, fetching user email
我想发出一个简单的 api GET 请求以获取基于帐户 name/username 的用户电子邮件。
我正在使用 axios,当我使用此 https://api.github.com/users/[username]
发出 GET 请求时
我取回了我需要的一切(存储库、关注者……),除了用户电子邮件。它始终为空。对我来说,只要收到用户在其个人资料上将其设置为 public 的电子邮件就足够了,但无论设置什么,它总是 return 为空。我正在阅读,也许我需要授权。我在我的 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
})
}
}
你可以看看Requestable.js
object from 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);
}
好的。我设法让它像这样工作。我只是发送一个带有 personalAccessToken 的 header 和请求。您可以在 github 页面上的 settings/Personal 访问 token/Generate 新令牌下获取个人访问令牌,并选择 user:email 作为范围。现在最好使用 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
})
}
}
我能够使用以下代码从 GitHub API 获取用户电子邮件。
https://api.github.com/user/emails?access_token=${token}
我想发出一个简单的 api GET 请求以获取基于帐户 name/username 的用户电子邮件。
我正在使用 axios,当我使用此 https://api.github.com/users/[username]
发出 GET 请求时
我取回了我需要的一切(存储库、关注者……),除了用户电子邮件。它始终为空。对我来说,只要收到用户在其个人资料上将其设置为 public 的电子邮件就足够了,但无论设置什么,它总是 return 为空。我正在阅读,也许我需要授权。我在我的 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
})
}
}
你可以看看Requestable.js
object from 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);
}
好的。我设法让它像这样工作。我只是发送一个带有 personalAccessToken 的 header 和请求。您可以在 github 页面上的 settings/Personal 访问 token/Generate 新令牌下获取个人访问令牌,并选择 user:email 作为范围。现在最好使用 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
})
}
}
我能够使用以下代码从 GitHub API 获取用户电子邮件。
https://api.github.com/user/emails?access_token=${token}