[英]using Twitter API Stream for multiple twitter accounts?
[英]Twitter stream api
我正在嘗試學習和理解nodejs。 嘗試連接到Twitter流的api並跟蹤推文時,出現以下錯誤:
undefined:1
<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=ut
^
SyntaxError: Unexpected token <
at Object.parse (native)
at IncomingMessage.<anonymous> (/home/ytsejam/public_html/nodejs/11/twitter.js:15:20)
at IncomingMessage.emit (events.js:95:17)
at IncomingMessage.<anonymous> (_stream_readable.js:764:14)
at IncomingMessage.emit (events.js:92:17)
at emitReadable_ (_stream_readable.js:426:10)
at emitReadable (_stream_readable.js:422:5)
at readableAddChunk (_stream_readable.js:165:9)
at IncomingMessage.Readable.push (_stream_readable.js:127:10)
at HTTPParser.parserOnBody [as onBody] (http.js:142:22)
這是我嘗試連接的代碼:
var https = require("https");
var options = {
host: 'stream.twitter.com',
path: '/1.1/statuses/filter.json?track=bieber',
method: 'GET',
headers: {
"Authorization": "Basic " + new Buffer("username:password").toString("base64")
}
};
var request = https.request('https://stream.twitter.com/1.1/statuses/filter.json?track=query', function(response){
var body = '';
response.on("data", function(chunk){
var chunk = chunk.toString();
try {
var tweet = JSON.parse(chunk);
} catch (err) {
console.log("JSON parse error:" + err);
}
console.log(tweet.text);
});
response.on("end",function(){
console.log("Disconnected");
});
});
request.end();
我進行了研究並嘗試調試。 我最好的猜測是var tweet = JSON.parse(chunk);
可能會引起問題。 第二種選擇,我缺少oauth參數。
你能幫助我嗎 ? 謝謝。
編輯:
我在這里使用答案來解決此問題Node.js和Twitter API 1.1
JSON.parse()
SyntaxError
因為它嘗試解析的數據是HTML而不是JSON。
通常,將JSON.parse()
包裝在try
/ catch
塊中是一個好主意,這樣您就可以優雅地處理這些事情。
(您的oauth資料中可能有一個問題,它無法通過身份驗證。因此,不是獲取JSON,而是獲取一個HTML頁面,告訴您身份驗證已失敗。但這只是一個猜測。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.