我正在使用带有Javascript的twitter流API来收集推文。问题是我没有使用扩展模式,当它超过140个字符时我没有得到完整的推文。我搜索了信息,发现我需要在请求中传递tweet_mode = extended,响应将包含full_text,这是完整的推文。问题是我不知道在哪里写tweet_mode = extended。这是我的代码:
twitter.stream('statuses/filter', {track: word, function (stream) {
stream.on('data', function (tweet) {
console.log(tweet.text)
});
stream.on('error', function (error) {
console.log("error:", error);
})
})
答案 0 :(得分:1)
正如Van所说,流媒体API中的推文是混合的。所以你可以试试这个:
twitter.stream('statuses/filter', {track: word, function (stream) {
stream.on('data', function (tweet) {
let text = tweet.extended_tweet?tweet.extended_tweet.full_text:tweet.full_text?tweet.full_text:tweet.text;
console.log(text)
});
stream.on('error', function (error) {
console.log("error:", error);
})
})
答案 1 :(得分:0)
不幸的是,流API没有添加tweet_mode参数的选项
此处的文档:https://developer.twitter.com/en/docs/tweets/tweet-updates
本段值得关注:
Streaming API不提供提供查询的相同功能 用于配置请求选项的参数。因此,Streaming API 此时以兼容模式呈现所有推文。
...
Streaming API使用者应该更新他们的代码以便首先检查 存在extended_tweet字典,并使用它 对截断数据的偏好适用于其用例。 当extended_tweet不存在时,它们必须回退到使用 现有领域。