2016-08-15 14 views
0

我試圖獲取記錄在從node.js中的Twitter用戶的鳴叫,但得到以下錯誤取從node.js中的Twitter用戶的時間表

{錯誤數據:[{代碼:32,消息: '無法驗證您的身份。' }]}

下面是我的代碼片斷,任何幫助將是非常可觀的

var oauthSignature =require('oauth-signature'); 
var request = require('request'); 
var timestamp =Math.floor(Date.now()/1000); 
function guid() { 

    function s4() { 
     return Math.floor((1 + Math.random()) * 0x10000) 
     .toString(16) 
     .substring(1); 
    } 
    return s4() + s4() + s4() + s4() + 
    s4() + s4() + s4() + s4(); 
} 
var uuid = guid(); 
var options = { 
    encodeSignature: true // will encode the signature following the RFC 3986 Spec by default 
} 

var httpMethod = 'GET', 
    url = 'https://api.twitter.com/1.1/statuses/user_timeline.json', 
    parameters = { 
     oauth_consumer_key : 'wxyrliZD8VdweAzzS31FElIkhK', 
     oauth_token : '3724495214-DBOnDCGcWtsektrxb8o6N3eKsTnahvL7OjJDzAfS', 
     oauth_nonce : uuid, 
     oauth_timestamp : timestamp, 
     oauth_signature_method : 'HMAC-SHA1', 
     oauth_version : '1.0' 
    }, 
    consumerSecret = 'MIQwmQveTqMsFBxoJTfx8Coh9ZQ41eaV0SgJsdGKquXWKThaCHv', 
    tokenSecret = 'JBxBAgXxUVh3RZHE9ZXRTYbujYhD9ekrYiCee0hxsWA2U', 
    // generates a RFC 3986 encoded, BASE64 encoded HMAC-SHA1 hash 
    encodedSignature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret); 
    var signature = oauthSignature.generate(httpMethod, url, parameters, consumerSecret, tokenSecret, 
     { encodeSignature: false}); 
    console.log(signature) 
    // generates a BASE64 encode HMAC-SHA1 hash  

    request.get({url:'https://api.twitter.com/1.1/statuses/user_timeline.json', 
      'headers':{'Authorization':' OAuth oauth_token="3724495214-DBOnDCGcWtseketrxb8o6N3KsTnahvL7OjJDzAfS",oauth_signature='+encodeURI(signature)+',oauth_version="1.0",oauth_nonce='+uuid+', oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_consumer_key = "wxyrliZD8VdwAzrzS31FElIkhK", oauth_timestamp='+timestamp},json:true,timeout: 5000},function (e, r, user) { 
       console.log(e,user); 
}); 

回答

0

我找到解決this.Please檢查構建自定義代碼,我們可以使用節點模塊的下方code.Instead「 twitter-node-client'

var Twitter = require('twitter-node-client').Twitter; 
var error = function (err, response, body) { 
    console.log('ERROR [%s]', err); 
}; 
var success = function (data) { 
    console.log('Data [%s]', data); 
}; 
var config = { 
    "consumerKey": "wxyrliZD85VdwAzzS31FElIkhK", 
    "consumerSecret": "MIQwmQveTqMsFBxoJTfx8Coh9ZQ451aV0SgJsdGKquXWKThaCHv", 
    "accessToken": req.session.twitterAccessToken, 
    "accessTokenSecret": req.session.twitterAccessSecret  
}; 
var twitter = new Twitter(config); 
twitter.getUserTimeline({user_id: req.session.influencer.twitterId,count: '1'}, error,success); 
相關問題