Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python和twitterApi向tweet添加多个图像?_Python_Twitter_Tweets - Fatal编程技术网

使用python和twitterApi向tweet添加多个图像?

使用python和twitterApi向tweet添加多个图像?,python,twitter,tweets,Python,Twitter,Tweets,您好,我一直在尝试使用python中的twitterAPI模块向tweet添加四个图像-不幸的是,下面的代码仅呈现tweet中数据中的一个图像。有人能给我指出正确的方向,在推特上附加四张图片吗?我的代码如下(减去导入和密钥) 不推荐使用“状态/使用媒体更新”。以下是首选方法 from TwitterAPI import TwitterAPI TWEET_TEXT = 'some tweet text' IMAGE_PATH = './some_image.png' api = Twitter

您好,我一直在尝试使用python中的twitterAPI模块向tweet添加四个图像-不幸的是,下面的代码仅呈现tweet中数据中的一个图像。有人能给我指出正确的方向,在推特上附加四张图片吗?我的代码如下(减去导入和密钥)


不推荐使用“状态/使用媒体更新”。以下是首选方法

from TwitterAPI import TwitterAPI

TWEET_TEXT = 'some tweet text'
IMAGE_PATH = './some_image.png'

api = TwitterAPI(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)

# STEP 1 - upload image
file = open(IMAGE_PATH, 'rb')
data = file.read()
r = api.request('media/upload', None, {'media': data})
print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE')

# STEP 2 - post tweet with a reference to uploaded image
if r.status_code == 200:
    media_id = r.json()['media_id']
    r = api.request('statuses/update', {'status':TWEET_TEXT, 'media_ids':media_id})
    print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE')

参数列表
media\u id
必须是一个字符串,其中
media\u id
用逗号分隔。

我也有同样的问题,所以我在上面修改了一点代码,它工作得很好(请原谅,如果不是很清楚的话…)我的图像名为1.jpg,2.jpg

from TwitterAPI import TwitterAPI

api = TwitterAPI(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)
media_ids = ''

for i in range(2): #Set 1 to 4 images (exemple with 2)
    TWEET_TEXT = 'some tweet text'
    IMAGE_PATH = f'{i}.jpg'
    file = open(IMAGE_PATH, 'rb')
    data = file.read()
    r = api.request('media/upload', None, {'media': data})
    print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE')


    if r.status_code == 200:
        if i == 0:
            media_ids += str(r.json()['media_id'])
        else:
            media_ids = media_ids + ',' + str(r.json()['media_id'])

#POST IMAGES
r = api.request('statuses/update', {'status':TWEET_TEXT, 'media_ids':media_ids})
print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE')

这清楚地表明了这一点——谢谢。我必须将TwitterAPI升级到最新版本,只需循环浏览4个图像,检索媒体ID并将它们放入字符串中,即可发送所有4个图像。非常感谢。
from TwitterAPI import TwitterAPI

api = TwitterAPI(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_TOKEN_KEY,ACCESS_TOKEN_SECRET)
media_ids = ''

for i in range(2): #Set 1 to 4 images (exemple with 2)
    TWEET_TEXT = 'some tweet text'
    IMAGE_PATH = f'{i}.jpg'
    file = open(IMAGE_PATH, 'rb')
    data = file.read()
    r = api.request('media/upload', None, {'media': data})
    print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE')


    if r.status_code == 200:
        if i == 0:
            media_ids += str(r.json()['media_id'])
        else:
            media_ids = media_ids + ',' + str(r.json()['media_id'])

#POST IMAGES
r = api.request('statuses/update', {'status':TWEET_TEXT, 'media_ids':media_ids})
print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE')