OAuth2.0 を使用して Elance API を使用するように node.js アプリケーションをセットアップしようとしています。passport.js を使用して elance API に接続していますが、これまでのところコードを正しく取得できています。API メソッドを使用する前に、post request を使用してリクエスト トークンを取得する必要があります。
ただし、「コードは既に使用されています」というエラーが表示されます。これが私のコールバックコードです
app.get('/callback',
passport.authenticate('elance', { failureRedirect: '/failure' }),
function(req, res) {
console.log('CODE : ' + req.query.code); // this is getting displayed properly
var payload = {
code: req.query.code,
grant_type:'authorization_code',
client_id: auth.CLIENT_ID,
client_secret: auth.CLIENT_SECRET
};
request.post('https://api.elance.com/api2/oauth/token/', payload)
.then(function(response) {
var x = response.getBody();
console.log('resp::::'+x);
res.redirect('/success');
});
});
requestifyを使用してポスト リクエストを実行していますが、一時コードでサーバーを使用または呼び出していません。生成されたエラーは次のとおりです。
... [Sat, 29 Mar 2014 05:54:15 GMT] "GET /callback?code=F9t-zztOLJ3IOlbGXlsqous686HstXqkv7etrvEnF11Vg4M HTTP/1.1" - - "-" "Mozilla/5.0 (X11; Linux i686 on x86_64; rv:30.0) Gecko/20100101 Firefox/30.0"
InternalOAuthError: Failed to obtain access token (status: 401 data: {"errors":[{"code":null,"description":"Code already used."}]})