2016-09-06 75 views
3

我想寫一個腳本,將使用API​​發佈兩個圖像到Twitter,任何想法,爲什麼這不起作用?它只發布第一張圖片。新的這個,謝謝!Python鳴叫多個圖像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

你快到了。你只是忘了用你的ID號碼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)