簡體   English   中英

使用tweepy回復帶有圖像的推文

[英]replying to tweet with image using 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_with_media時,我使用的是update_status,例如:

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

我的新tweet確實被發布為對原始tweet( twt )的回復。

我想念什么?
謝謝

我最終得到的解決方案是切換到twython模塊,該模塊具有經過充分記錄的功能並且可以完美運行。 非常感謝您的幫助。

Twitter不推薦使用update_with_media端點( https://dev.twitter.com/rest/reference/post/statuses/update_with_media ),您不應該使用它。 而是先使用media_upload方法上載媒體,然后將您獲得的media_id添加回update_status方法。

我瀏覽了update_with_media的代碼,沒有看到任何明顯的錯誤,但是在一月份,Tweepy API中添加了使用媒體處理推文的新方法-請注意此處的最后兩點:

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

如果您下載了Tweepy 3.2.0,則應該可以切換到新方案,這有望解決您的reply_to問題。 (我不能肯定這些新東西是否有效,我自己使用的是Tweepy的舊版本。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM