2017-05-19 4 views
1

アカウント名/ユーザー名に基づいてユーザーのメールを取得する簡単なAPIリクエストを作成したいと思います。 私はAxiosを使用していますが、これを使用してGETリクエストを行うと、https://api.github.com/users/[username] 私は必要なもの(リポジトリ、フォロワー...)をユーザーのメール以外に戻します。常にnullです。自分のプロフィールで一般公開されたメールをユーザーから受け取るだけで十分ですが、何が設定されていても常にnullが返されます。おそらく認可が必要なことを私は読んでいます。自分のgithubアカウントで個人用のアクセストークンを作成しましたが、どうすれば使用できますか?どのようなユーザーの電子メールを取得する最良の方法は?Github Api、ユーザーのメールを取得する

これは、あなたがそれをトークンに基づいてAuthorizationHeaderを定義しGitHub.js tool

からRequestable.jsオブジェクトを見ることができます私が今持っているもの

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 
    }) 
    } 
} 

答えて

1

[OK]を。私はこれをこのように機能させることができました。 personalAccessTokenでヘッダーをリクエストと共に送信するだけです。 githubページの個人用アクセストークンは、設定/個人用アクセストークン/新しいトークンを生成し、スコープ用の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 
    }) 
    } 
} 
+0

興味深い選択肢。 +1 – VonC

0

です:

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); 
    } 
+0

ありがとうございます。私もこの方法を調査しますが、今はOAuthがより良い解決策になるかもしれないが、私はそれがうまくいくように私の答えを見ることができます。 –

関連する問題