怎样聪明地实时获取一个用户的推特更新?

2017-07-08 04:26:13 +08:00
 MagaFun

我是一个 Python 初学者,最近想做一些编程练习,一番思考之后决定用 Twitter 的 Python API 做一个机器人,实时获取一个用户的实时推特更新并且转发到 Telegram 上。我的思路是这样的:

  1. 首先获取这个用户的最新推特信息。
  2. 睡眠五秒。
  3. 再次获取这个用户的最新推特信息。
  4. 比较第一步获取的推特以及第三步获取的推特:
    1. 如果相同,返回第一步
    2. 如果不相同,将第三步获取的信息推送到 Telegram 上。
  5. 程序结束

这个程序其实运行的还好,但是只有一个问题,就是这个用户必须要在程序睡眠的这五秒内发送推特,才能被这个程序检测到。

我在 StackOverflow 也问了一下这个问题,一位用户表示我应该去看看推特的 User Stream API。我也花了一点儿时间去阅读,但是我在信息类型上并没有发现任何与「 Status 」有关的信息。麻烦请 V 友指导:我该怎么聪明地实时获取一个用户的推特更新?先提前谢谢各位。

5435 次点击
所在节点    Python
11 条回复
Lax
2017-07-08 04:44:38 +08:00
其它信息类型与 REST API 相同,看 REST API 文档就行。

文档说有个新的测试 Webhook API 用于替换 STREAMING API https://dev.twitter.com/webhooks/account-activity
geelaw
2017-07-08 05:03:36 +08:00
用 Webhook API ——你需要让你的程序可以被公网访问。

如果你要用 polling 的方法,可以利用 since_id。
ixinshang
2017-07-08 06:17:56 +08:00
iftt 不知道行不行
MagaFun
2017-07-08 06:59:57 +08:00
@ixinshang 就是因为 IFTTT 不够用我才自己打算写程序的。
MagaFun
2017-07-08 07:01:12 +08:00
@Lax 谢谢解释,当时没注意到 REST API。
MagaFun
2017-07-08 07:01:56 +08:00
@geelaw 谢谢,没接触过 Webhook,看来要继续学习了。
lujiajing1126
2017-07-08 10:20:45 +08:00
我记得 Storm 有提供 Twitter 的 Spout
楼主可以看一下是否满足你的需求
rswl
2017-07-08 10:22:30 +08:00
如果 5 秒内发了 2 条那不是漏了
GoBeyond
2017-07-08 11:44:29 +08:00
如果你仅仅是想做一个转推到 tg 频道 /群组的机器人的话,可以用 @chatfuelbot 这个机器人,自己注册一个机器人绑定到这个平台上就可以了
ToBeHacker
2017-07-10 10:33:40 +08:00
最好的话就是能获取一个 API 的推送,否则就只能轮询了
helenhe
2020-02-24 22:16:09 +08:00
大佬,代码可参考吗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/373863

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX