[英]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.