0
我有問題。過去3個小時,我一直在試圖弄清楚這一點,而我不知道爲什麼這不起作用,我期待它。請知道,我還是很新的Javascript,所以我很抱歉,如果有什麼是明顯的。Nodejs Request Return Misbehaving
有了這段代碼,我試圖從Twitter獲取一個不記名令牌,但是,return body
和console.log(body)
返回2完全不同的東西。
當我console.log(body)
,我得到的輸出我想到:
{"token_type":"bearer","access_token":"#####"}
不過,如果我return body
,我得到的http請求的JSON。我在下面粘貼了我的代碼,我希望有人能夠提供幫助。
var request = require('request');
var enc_secret = new Buffer(twit_conkey + ':' + twit_consec).toString('base64');
var oauthOptions = {
url: 'https://api.twitter.com/oauth2/token',
headers: {'Authorization': 'Basic ' + enc_secret, 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'},
body: 'grant_type=client_credentials'
};
var oauth = request.post(oauthOptions, function(e, r, body) {
return body;
});
console.log(oauth)
感謝您的評論,但我不確定如何做到這一點。 我需要能夠'JSON.parse(body).access_token',然後將輸出存儲在一個變量中,這樣我可以在初始化twitter時調用它。 如果我要從變量中分離出這個函數,並且在裏面移動這個變量,我將無法在函數外部調用該變量。我將如何能夠實現這一目標? –
@KurisuBrooks - 異步時間是完全不確定的。結果可能在1秒內可用,或者可能在4分鐘內可用。因此,使用結果的唯一方法是在您知道現在可用的回調中。如果你想用它初始化twitter,那麼你可以在這個回調中調用twitter初始化。這可能看起來並不像你想要構建的東西,但它是你必須用異步結果做事情的方式。 – jfriend00
我明白了,非常感謝。我試圖將我的Twitter身份驗證密鑰保存在一個單獨的文件中,當我同步時,它並未提交給git,但它看起來像是不可避免的。我可能需要研究async的工作方式,但您一直非常樂於幫助。感謝一堆:) –