问题标签 [twitter-streaming-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
538 浏览

api - 性能测试 Twitter Streaming API 消费者

我有一个使用 Twitter Streaming API 实时消费 Twitter 帖子的服务。

我已经建立了一个后台进程,它连接到流并将推文推送到 Redis。这是用 node.js 构建的

我需要做的是弄清楚这个过程可以消耗的最大推文数量。我需要对此设置进行性能测试。

对此进行测试的最佳方法是什么?

我需要知道:

  • 在它崩溃之前它可以处理多少条推文
  • 当进程无法处理更多推文时会发生什么

我想要这样做的另一个原因是确定它是否值得使用 node.js。我宁愿用 EventMachine 来写它。

0 投票
2 回答
965 浏览

twitter - Twitter 速率限制 IP/OAuth 问题

我有一系列网络应用程序,它们使用Public Streaming API收集与某个主题相关的所有术语。到目前为止,我一直在为每个流创建一个新帐户,在该帐户上设置一个新的 Twitter 应用程序,复制 OAuth 令牌,启动一个新的 EC2 实例,并设置流,这是一条非常非常艰巨的路线.

这使我可以拥有来自多个不同 IP 的流,当您创建应用程序时,使用生成器工具可以轻松生成 OAuth,并且因为它们都位于不同的帐户中,所以我不满足任何帐户限制。

我想知道我是否可以做些什么来加快这个过程,特别是在 EC2 实例方面。我可以使用不同的帐户在同一个实例上运行一堆流吗?

0 投票
2 回答
5466 浏览

python - Requests 流式传输示例在我的环境中不起作用

我一直在尝试使用 Python 请求来使用 Twitter 流 API。

文档中有一个简单的例子

当我执行此操作时,对requests.post()永不返回的调用。我已经实验并证明它肯定是连接到 Twitter 并从 API 接收数据。但是,它并没有返回响应对象,而是坐在那里消耗 Twitter 发送的数据。从上面的代码来看,我希望requests.post()返回一个与 Twitter 建立开放连接的响应对象,我可以继续接收实时结果。

(为了证明它正在接收数据,我在另一个 shell 中使用相同的凭据连接到 Twitter,然后 Twitter 关闭了第一个连接,并且调用返回了响应对象。该r.content属性包含在连接打开时接收到的所有备份数据。 )

该文档没有提及requests.post在使用所有提供的数据之前导致返回所需的任何其他步骤。其他人似乎正在使用类似的代码而没有遇到这个问题,例如这里

我正在使用:

  • 蟒蛇 2.7
  • Ubuntu 11.04
  • 请求 0.14.0
0 投票
2 回答
622 浏览

twitter - 在 Amazon Elastic Compute Cloud (Amazon EC2) 上托管 twitter 流 api 的优缺点是什么

对于我的一个研究项目,我正在编写一个用于分析推文的情绪分析工具。

我现在的问题是:在 Amazon Elastic Compute Cloud (Amazon EC2) 上托管 twitter 流 API 的优缺点是什么?

微型(免费)包就足够了吗?有人在推特方面有任何经验吗?

谢谢你的帮助

克里斯

0 投票
2 回答
914 浏览

twitter - twitter 流 API 跟踪关键字中精确二元组匹配的编码空间

我正在使用 Twitter 流 API。它对单个单词非常有效,但似乎无法通过精确的二元组(两个单词串)过滤。

我正在通过搜索常用词来测试这一点,这些词通常组合在一起:

这是 URL:(需要 OAuth 登录):

https://stream.twitter.com/1.1/statuses/filter.json?track=keywords_go_here

不起作用的事情:

关于让它发挥作用的任何想法?

编辑:有人在 2010 年初回答了这个问题:Twitter Streaming API - tracking exact multiple keywords in exact order,但是这个问题有什么更新吗?

0 投票
1 回答
1505 浏览

python - 带有 Tweepy 的 Twitter 流 API 拒绝 oauth

我正在尝试访问我以前在不正确地使用 Tweepy 时工作过的 Twitter 流。现在我了解了 Tweepy 的用途,我编写了以下 Stream.py 模块。当我运行它时,我收到错误代码 401,告诉我我的身份验证已被拒绝。但我之前使用相同的消费者令牌和秘密让它工作。有任何想法吗?

0 投票
1 回答
1957 浏览

python - Python - 套接字超时原因?网络连接丢失或没有可阅读的内容?

基本上:有没有办法告诉(Python 2.7)套接字何时超时,是因为没有任何东西传递到套接字还是因为网络连接断开?

我有一个 Python 应用程序,它将长时间(>30 天)连接到 Twitter 流 API。每当发送推文时,应用程序都会从​​套接字的缓冲区中读取,但如果没有发送推文,则读取命令将超时并抛出SSLError.

这是发生读取/超时的片段:

我在创建时设置了超时HTTPSConnection,目前设置为 30 秒。因此,如果 30 秒内没有阅读任何推文,则resp.read命令将超时并抛出 SSLError,因此我忽略(通过返回 None,这是从该代码段向上处理的一个级别),然后再读取 30 秒。问题是,如果网络断开连接,即使它在不久之后重新连接,套接字似乎也不会再次开始读取,只会继续超时。解决此问题的唯一方法是重新连接,这很好,因为网络断开连接很少见。我可以将超时设置得非常高,并在每次超时时重新连接,但这会增加我的应用程序无法运行的时间,因为有人拔掉了网络电缆。我可以将超时设置为低以最大限度地减少停机时间,但是当没有阅读任何推文时,我会不必要地重新连接。

有没有办法根据抛出的 SSLError 来区分原因?

0 投票
1 回答
455 浏览

android - Twitter Streaming API 与 Twitter 搜索实时事件流

我将在内部提供一个 twitter 提要和允许转发、收藏和回复推文的 Android 应用程序。我知道有一个搜索 api 和一个流 api。这是一个重大的现场活动,我只是想知道搜索 api 是否是要走的路,或者流 api 是否会更好。

所以基本上在直播活动的 android 应用程序中,我有一个 twitter 提要,可以读取它允许用户重新发推文等。所以它就像应用程序中的一个小 twitter 客户端。流式传输是通往这里的路,还是它比它的价值更麻烦,并且搜索 api 更适合某种类型的轮询?

0 投票
1 回答
13551 浏览

python - 使用 Streaming API 避免 420?

我有一个 python 脚本,它使用基本身份验证并使用tweetstream模块 连接到 Twitter Streaming API 。

我每分钟收集大约 10 条推文。
我遇到了间歇性断开连接,因此目前正在记录它们发生的频率。

我一直在达到我的速率限制并收到 420 个 HTTP 错误。

我知道对于搜索 API,使用 OAuth 身份验证可以获得更高的配额。对于流媒体,我找不到任何关于基本和 OAuth 之间速率限制差异的参考。无论如何,我正在使用的 python Tweetstream 似乎不支持流 API。

我注意到Tweetstream 的 Ruby 版本支持 OAuth,但我正在做这个项目作为 python 的学习经验。

通过阅读Twitter 帮助,它谈到了“退避策略”并提到:

如果收到 HTTP 420 响应,则必须在几分钟内停止进一步的连接尝试。

我不再收到错误,但一直在尝试在我的代码中制定更好的逻辑以避免永久出现这些错误。

我目前的建议如下,现在等待 200 秒,然后再尝试重新连接。

我的问题是 - 这是避免从 Twitter 接收 420 错误的好方法吗?对 Twitter API 比较熟悉的朋友,能推荐一个方法吗?

0 投票
2 回答
2565 浏览

twitter4j - 如何使用 twitter4j 更改 twitter 流 api 上的关键字?

我正在使用 twitter4j 连接到 Stream API。

我从这篇文章中了解到,在不重新打开流的情况下更改 Twitter 流过滤器关键字,在连接打开时无法更改关键字。我必须断开连接并更改过滤谓词并重新连接它。

我想知道是否有任何代码示例可以让我断开连接、更改关键字并重新连接?

目前,我尝试在 onStatus() 下的 StatusListener 中执行此操作,经过 X 时间后,它会将关键字更改为“juice”。但是我没有办法关闭连接并重新连接到 Stream API。