使用超过4张图片/超过1个视频更新Twitter状态

时间:2019-01-11 03:57:19

标签: python python-3.x twitter bots

我制作了一个Twitter机器人,可以上传图像和视频,但是可以正常工作,但只能在1条推文中上传1张图像和1个视频。所以我想改进它,以便我可以上传多个图像/视频,但twitter在1条推文中有4张图像或1个视频限制。我已经弄清楚了如何在1条推文中上传4张图像,但这不是我想要的。 因此,其想法是使Twitter上传限制达到最大,然后如果达到限制,则将其上传到Twitter线程中。例如,在包含5张图像和2个视频的文件夹中,机器人将发布1个视频-用1个视频回复上一个推文-用4个图像回复上一个推文-然后使用1个图像回复上一个推文,反之亦然。 我从github上的dumpbotthreader那里获得了一些想法,但是仍然不知道如何将我的想法实现到这些脚本中。谢谢。

1 个答案:

答案 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)