2016-10-07 17 views
2

githubのAPIをリクエストしようとしています。ここに私の要求は次のとおりです。リクエストのリクエスト機能を使用しているときにGithub APIが403で応答しています

Request forbidden by administrative rules. Please make sure your request has a User-Agent header (http://developer.github.com/v3/#user-agent-required). Check https://developer.github.com for other possible causes. 

私が過去にまったく同じコードを使用している、それが働いている:

var url = 'https://api.github.com/' + requestUrl + '/' + repo + '/'; 

request(url, function(err, res, body) { 
    if (!err && res.statusCode == 200) { 

     var link = "https://github.com/" + repo; 
     opener(link); 
     process.exit(); 

    } else { 
     console.log(res.body); 
     console.log(err); 
     console.log('This ' + person + ' does not exist'); 
     process.exit(); 
    } 

}); 

これは私が私の応答を得るものです。要求によってエラーはスローされません。今私はなぜ403(禁じられた)が得られているのかと混同されますか?どんな解決策ですか?

+0

は、ユーザーエージェントヘッダーを追加するか、単にgithubのAPIのNPM上のモジュール(複数可)を使用します。 –

答えて

7

としてはURL given in the responseに説明し、GitHubでのAPIへのリクエストは、今User-Agentヘッダが必要です。

すべてのAPIリクエストが有効なUser-Agentヘッダを含まなければなりません。 User-Agentヘッダーの要求は拒否されます。 User-Agentヘッダーの値には、GitHubのユーザー名またはアプリケーションの名前を使用することを要求します。これにより、問題が発生した場合にお客様に連絡することができます。あなたのリクエストにUser-Agentヘッダを追加する方法を

requestドキュメントshows specifically

var request = require('request'); 

var options = { 
    url: 'https://api.github.com/repos/request/request', 
    headers: { 
    'User-Agent': 'request' 
    } 
}; 

function callback(error, response, body) { 
    if (!error && response.statusCode == 200) { 
    var info = JSON.parse(body); 
    console.log(info.stargazers_count + " Stars"); 
    console.log(info.forks_count + " Forks"); 
    } 
} 

request(options, callback); 
関連する問題