簡體   English   中英

Node.js Twitter流API

[英]Node.js twitter stream api

我正在使用nettutplus簡介系列學習node.js。 在本系列中,有一堂課是使用twitter流api創建node.js應用程序的,視頻中顯示的代碼與我編寫的代碼完全相同,但是不起作用。

這是我的代碼

var https = require("https");
var options = {
host: 'stream.twitter.com',
path: '/1/statuses/filter.json?track=bieber',
method: 'GET',
headers: {
    "Authorization": "Basic " + new Buffer("username:password").toString("base64")
}
};

var request = https.request(options, function(response){
var body = '';
response.on("data", function(chunk){
    var tweet = JSON.parse(chunk);
    console.log("Tweet: "+ tweet.text);
});

response.on("end", function(){
    console.log("Disconnected");
});
});

request.end();

錯誤是這個

未定義:1

^

語法錯誤:意外令牌<

at Object.parse (native)
at IncomingMessage.<anonymous> (C:\Users\monk\Desktop\folder\node\twitter.js:14:20)
at IncomingMessage.EventEmitter.emit (events.js:95:17)
at IncomingMessage.<anonymous> (_stream_readable.js:736:14)
at IncomingMessage.EventEmitter.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:408:10)
at emitReadable (_stream_readable.js:404:5)
at readableAddChunk (_stream_readable.js:165:9)
at IncomingMessage.Readable.push (_stream_readable.js:127:10)
at HTTPParser.parserOnBody [as onBody] (http.js:141:22)

我正在使用Windows和cmd。

您使用的代碼適用於舊的twitter api版本1。Twitter最近啟動了api 1.1的新版本,並停止了舊版本。 新的twitter api要求您對每個請求進行身份驗證,並且可以在twitter開發人員站點中閱讀的身份驗證機制有所更改。 至於腳本中的上述錯誤,是因為您正在嘗試解析JSON.parse(chunk);。 chunk是html,而您得到這些錯誤。 嘗試更新代碼以獲取最新版本的twitter api。 謝謝

您正在嘗試從請求中解析一小部分響應,該響應可能不是有效的JSON。 完整的響應是有效的JSON。

它不斷地流送JSON,並以結尾行分隔。 而且您必須處理這些。 您必須等待最終結果,然后解析收到的數據。 在這里看到一個祈求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM