2016-06-16 67 views
1

對,如此。未知的Twitter API問題

我試圖使用'Twitter'模塊(在npm上找到,使用npm install twitter安裝)從給定的screen_name中獲取朋友列表,但是,我的程序保持失敗,我不確定爲什麼,確切地說, 。在這個時候,所有它應該做的就是擺脫朋友列表,包含在朋友JSON對象中,但由於某種原因,這不起作用。

我不明白爲什麼。代碼包含在下面。如果您需要提問,請留下評論。

function readTokenFromDisc(){ //Used to save on requests. 
    return new Promise(function(resolve, reject){ 
    fs.readFile('bearerToken.txt', 'utf8', function(error, data){ 
     resolve(data); 
    }); 
    }); 
} 

function buildClient(bToken){ 
    return new Promise(function(resolve, reject) { 
    var client = new Twitter({ 
     consumer_key: process.env.TWITTER_CONSUMER_KEY, 
     consumer_secret: process.env.TWITTER_CONSUMER_SECRET, 
     bearer_token: bToken 
    }); 
    resolve(client); 
    }); 
} 

function grabTwitterFollowers(client){ 
    return new Promise(function(resolve, reject) { 
    client.get('friends/list', {screen_name: 'POTUS'}, function (error, tweets, response){ 
     if(error){ 
     console.log(error); 
     }; 
     resolve(tweets); 
     console.log(tweets) //debug 
     console.log(response) //debug 
    }); 
    }); 
}; 

function initTwitter(){ 
    console.log('Test!') //debug, triggers 
    readTokenFromDisc().then(function(contents){ 
    console.log('Othertest!') //debug, triggers. 
    buildClient(contents); 
    }).then(function(client){ 
    grabTwitterFollowers(client); 
    }).then(function(following){ 
    console.log(following) //debug, output is 'Undefined'. 
    }); 
} 

回答

2

您缺少退貨。

grabTwitterFollowers(client);buildClient(contents);

initTwitter

大概應該是

return grabTwitterFollowers(client);return buildClient(contents);

,因爲它返回的鏈的承諾。否則,承諾將傳遞undefined,這是一個沒有返回的函數的結果。

+0

就是這樣。不知何故,我知道我是個白癡。謝謝您的幫助! –

+0

沒問題。一直髮生在我身上 – user01