2016-09-06 2 views
3

Я пытаюсь написать сценарий, который отправит два изображения в Twitter с помощью API, любая идея, почему это не работает? Он записывает только первое изображение. Новое к этому, спасибо!Python tweet multiple images Twitter API

from TwitterAPI import TwitterAPI 
import urllib 

api = TwitterAPI('','','','') 

x = [] 

file = open('im1.png', 'rb') 
data = file.read() 
r = api.request('media/upload', None, {'media': data}) 
media_id = r.json()['media_id'] 
print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE') 
x.append(str(media_id)) 


file = open('im2.png', 'rb') 
data1 = file.read() 
r = api.request('media/upload', None, {'media': data1}) 
media_id = r.json()['media_id'] 
print('UPLOAD MEDIA SUCCESS' if r.status_code == 200 else 'UPLOAD MEDIA FAILURE') 
x.append(str(media_id)) 


if r.status_code == 200: 
    media_id = r.json()['media_id'] 
    r = api.request('statuses/update', {'status':'Test', 'media_ids':media_id}) 
    print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE') 

ответ

0

Вы почти находитесь. Вы просто забыли использовать свой массив идентификаторов x. Внесите следующие изменения в последнюю часть кода.

if r.status_code == 200: 
    media_id = ','.join(x) 
    r = api.request('statuses/update', {'status':'Test', 'media_ids':media_id}) 
    print('UPDATE STATUS SUCCESS' if r.status_code == 200 else 'UPDATE STATUS FAILURE') 
0

Использовать tweepy (гораздо проще);

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 

api = tweepy.API(auth) 

Im1 = urllib.urlretrieve('http://www.meteociel.fr/cartes_obs/temp_uk.png','im1.png') 

images = ('im1.png', 'im1.png') 
media_ids = [api.media_upload(i).media_id_string for i in images] 
api.update_status(status='msg', media_ids=media_ids)