V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
MagaFun
V2EX  ›  Python

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

  •  
  •   MagaFun · 2017-07-08 04:26:13 +08:00 · 5657 次点击
    这是一个创建于 2695 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    11 条回复    2020-02-24 22:16:09 +08:00
    Lax
        1
    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
        2
    geelaw  
       2017-07-08 05:03:36 +08:00
    用 Webhook API ——你需要让你的程序可以被公网访问。

    如果你要用 polling 的方法,可以利用 since_id。
    ixinshang
        3
    ixinshang  
       2017-07-08 06:17:56 +08:00 via Android
    iftt 不知道行不行
    MagaFun
        4
    MagaFun  
    OP
       2017-07-08 06:59:57 +08:00
    @ixinshang 就是因为 IFTTT 不够用我才自己打算写程序的。
    MagaFun
        5
    MagaFun  
    OP
       2017-07-08 07:01:12 +08:00
    @Lax 谢谢解释,当时没注意到 REST API。
    MagaFun
        6
    MagaFun  
    OP
       2017-07-08 07:01:56 +08:00
    @geelaw 谢谢,没接触过 Webhook,看来要继续学习了。
    lujiajing1126
        7
    lujiajing1126  
       2017-07-08 10:20:45 +08:00 via iPhone
    我记得 Storm 有提供 Twitter 的 Spout
    楼主可以看一下是否满足你的需求
    rswl
        8
    rswl  
       2017-07-08 10:22:30 +08:00
    如果 5 秒内发了 2 条那不是漏了
    GoBeyond
        9
    GoBeyond  
       2017-07-08 11:44:29 +08:00 via Android
    如果你仅仅是想做一个转推到 tg 频道 /群组的机器人的话,可以用 @chatfuelbot 这个机器人,自己注册一个机器人绑定到这个平台上就可以了
    ToBeHacker
        10
    ToBeHacker  
       2017-07-10 10:33:40 +08:00
    最好的话就是能获取一个 API 的推送,否则就只能轮询了
    helenhe
        11
    helenhe  
       2020-02-24 22:16:09 +08:00
    大佬,代码可参考吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:35 · PVG 05:35 · LAX 13:35 · JFK 16:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.