3

我正在尝试通过给定的标签或关键字跟踪所有推文。问题是当我使用像“动物”这样的简单关键字时,我可以流式传输推文,但是当我将其更改为“animal4666”时,它就不起作用了。没有收到回复。我正在使用下面的代码。

    twit.stream('statuses/filter', { track: 'animal4666' }, function(stream) {
        stream.on('data', function(data) {
            console.log(util.inspect(data));
        });
    });

我从不同的帐户发布了两条推文,如下所示:

'#animal4666 a'

'#animal4666 试图找出发生了什么?

以上推文使用搜索 API 成功检索,但由于搜索 API 的速率限制,我需要使用流 API,以便我可以使用 node.js 每两秒检查一次新推文

我正在使用的 node.js 插件:https ://github.com/jdub/node-twitter

有人可以帮忙吗?

4

1 回答 1

1

如果您查看您正在使用的库的代码,似乎没有什么潜在的错误
,它只有在您在轨道参数中传递一个数组时才有解决方法,但事实并非如此

// Workaround for node-oauth vs. twitter commas-in-params bug
if ( params && params.track && Array.isArray(params.track) ) {
    params.track = params.track.join(',')
 }

因此,查看官方 api 文档以了解 track 方法,我看到两个可能相关的警告。

每个短语必须介于 1 到 60 个字节之间(含)。

我认为你的更短,但需要牢记

我认为你真正的问题是:

不支持短语的精确匹配(相当于大多数搜索引擎中的引用短语)。

标点符号和特殊字符将被视为与其相邻的术语的一部分。在这个意义上,“你好”。是与“你好”不同的音轨术语。但是,匹配项将忽略推文中存在的标点符号。所以“hello”将匹配“hello world”和“my brother says hello”。请注意,标点符号不被视为#hashtag 或@mention 的一部分,因此包含标点符号的轨道术语将不匹配#hashtags 或@mentions。

您可以在此处在线查看您的推文文本以查看它是否匹配

于 2013-10-29T18:31:14.733 回答