2016-09-06 10 views
3

私はAPIを使用してTwitterに2つの画像を投稿するスクリプトを作成しようとしていますが、なぜこれが機能しないのでしょうか?最初の画像のみを投稿します。これを初めてお世話になりました!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

あなたはほぼあります。 ids 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)