我制作了一个Twitter机器人,可以上传图像和视频,但是可以正常工作,但只能在1条推文中上传1张图像和1个视频。所以我想改进它,以便我可以上传多个图像/视频,但twitter在1条推文中有4张图像或1个视频限制。我已经弄清楚了如何在1条推文中上传4张图像,但这不是我想要的。 因此,其想法是使Twitter上传限制达到最大,然后如果达到限制,则将其上传到Twitter线程中。例如,在包含5张图像和2个视频的文件夹中,机器人将发布1个视频-用1个视频回复上一个推文-用4个图像回复上一个推文-然后使用1个图像回复上一个推文,反之亦然。 我从github上的dumpbot和threader那里获得了一些想法,但是仍然不知道如何将我的想法实现到这些脚本中。谢谢。
答案 0 :(得分:1)
我认为我已经弄明白了,它有效。目前仅用于图片上传...
import tweepy as tp
import time
import os
consumer_key = ''
consumer_secret = ''
access_token = ''
access_secret = ''
#Twitter login.
auth = tp.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token,access_secret)
api = tp.API(auth)
os.chdir('images')
media_ids = []
for filename in os.listdir('.'):
res = api.media_upload(filename)
media_ids.append(res.media_id)
medid1= media_ids[:4]
print(medid1)
medid2 = media_ids[4:8]
print(medid2)
medid3 = media_ids[8:]
print(medid3)
# tweet with multiple images
if medid1:
tweet1 = api.update_status(status='tweet1', media_ids=medid1)
tweetid1 = tweet1.id_str
time.sleep(1)
if medid2:
tweet2 = api.update_status(status='tweet2', media_ids=medid2, in_reply_to_status_id = tweetid1)
tweetid2 = tweet2.id_str
time.sleep(1)
if medid3:
tweet3 = api.update_status(status='tweet3', media_ids=medid3, in_reply_to_status_id = tweetid2)
tweetid3 = tweet3.id_str
time.sleep(1)