【问题标题】:replying to tweet with image using tweepy使用 tweepy 回复带有图像的推文
【发布时间】:2018-06-02 06:30:53
【问题描述】:

我正在尝试用 tweepy 回复某些推文,而我的回复包含一张图片。 twt 变量保存我要回复的推文。 这是我目前正在做的事情:

# -*- coding: utf-8 -*-
import tweepy, time, random  

CONSUMER_KEY = 'XXXX'
CONSUMER_SECRET = 'XXXX'
ACCESS_KEY = 'XXXX'
ACCESS_SECRET = 'XXXX'  

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET)
api = tweepy.API(auth)  

query = ['aaa', 'bbb', 'ccc']
t0 = time.time()
count = 0
last_count = 0

f = open('last_replied.txt')
last_replied = int(f.readline().strip())
f.close()
print('starting time:', time.strftime('%X'))

while True:
    if count > last_count:
        print(time.strftime('%X'), ':', count, 'replies')
        last_count = count
    for i in range(3):
        twts = api.search(query[i], since_id=last_replied)
        if len(twts)>0:
            for twt in twts:
                sid = twt.id
                sn = twt.user.screen_name
                stat = "lalala" + "@" + sn
                api.update_with_media('oscar1.gif',status=stat,in_reply_to_status_id=sid)
                count += 1
                last_replied = twt.id
                f = open('last_replied.txt','w')
                f.write(str(last_replied))
                f.close()
        pause = random.randint(50,90)
        time.sleep(pause)

我的推文被发布,但不是作为对原始推文的回复 (twt)。相反,它只是作为新的、独立的推文发布。
但是,当我使用 update_status 代替上面的 update_with_media 时,例如:

api.update_status(status=stat,in_reply_to_status_id=sid)

我的新推文确实会作为对原始推文的回复发布 (twt)。

我错过了什么?
谢谢

【问题讨论】:

  • 这里是用 api.update_with_media 回复推文的一些代码,并且工作正常,也许看看一些代码对你有帮助:) github.com/Soben713/Twizhoosh/blob/master/scripts/…
  • @Mohammadalibaghershemirani 我相信你正在使用其他模块,而不是像我这样的 tweepy

标签: python twitter tweepy


【解决方案1】:

我最终得到的解决方案是切换到twython 模块,该模块具有良好记录的功能并且可以完美运行。 非常感谢您的帮助。

【讨论】:

    【解决方案2】:

    Twitter (https://dev.twitter.com/rest/reference/post/statuses/update_with_media) 已弃用 update_with_media 端点,您不应使用它。而是先使用 media_upload 方法上传媒体,然后将返回的 media_ids 添加到 update_status 方法。

    【讨论】:

    • 谢谢你,胡安。你知道是否有支持这些功能的python库吗? tweepy 似乎没有(或者至少他们在文档中没有提到任何相关内容)
    • twython 包装器似乎有这个新功能。谢谢!
    • @teknoboy 正如我在回答中提到的那样,Tweepy 具有您可以使用的 media_upload 方法。
    • 我是一个新手程序员,并且对 twython 的(更好的)文档感到更加自在。非常感谢,你让我走上了正确的道路。
    • @JuanE。有没有关于如何在 Tweepy 中使用 media_upload 方法的文档或示例?我什么都找不到。
    【解决方案3】:

    我浏览了 update_with_media 的代码,没有发现任何明显的错误,但是在一月份的 Tweepy API 中添加了处理带有媒体的推文的新方法 - 请注意此处的最后两个项目符号:

    https://github.com/tweepy/tweepy/releases/tag/v3.2.0

    如果您下载 Tweepy 3.2.0,您应该能够切换到新方案,这有望解决您的 reply_to 问题。 (我不能确定新东西是否有效,我自己使用的是旧版本的 Tweepy。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2021-07-25
      • 2014-10-24
      • 2017-07-31
      相关资源
      最近更新 更多