ML680
ML680

Reputation: 99

How to tweet multiple images using twitter API?

Why bellow code tweet only one image not all three?

I want single tweet with multiple images using twitter API. At twitter API there is mention that you may attach up to 4 photos, 1 animated GIF or 1 video in a Tweet.

$this->load->library('twitterext/tmhoauth');
$this->config->load('hybridauthlib', TRUE);
$cunsumer = $this->config->item('hybridauthlib');
$tmhoauth = new tmhoauth(array(
   'consumer_key' => $cunsumer['providers']['Twitter']['keys']['key'],
   'consumer_secret' => $cunsumer['providers']['Twitter']['keys']['secret'],
   'user_token' => $np["networktoken"],
   'user_secret' => $np["networksecret"],
));

$media1='C:\wamp\www\vx\assets\uploads\post\post_10326.png';
$params1=array('media' => base64_encode(file_get_contents($media1));
$media2='C:\wamp\www\vx\assets\uploads\post\post_10327.png';
$params2=array('media' => base64_encode(file_get_contents($media2));
$media3='C:\wamp\www\vx\assets\uploads\post\post_10328.png';
$params3=array('media' =>base64_encode(file_get_contents($media3));

//after request 
$media_id=array();
for ($i=1; $i <4 ; $i++) { //suppose

  $url = 'https://upload.twitter.com/1.1/media/upload.json';
  $code = $tmhoauth->request('POST', $url, $params.$i, true);
     if ($code == 200) {
         $response = json_decode($tmhoauth->response['response']);
         $media_id[] = $response->media_id_string;

     } else {
         $response->error = $tmhoauth->response['response'];
     }


}

$messageparams['media_ids']=$media_id;
$messageparams['status']='my message';
$response = $adapter->api()->post('statuses/update.json', $messageparams);

Upvotes: 2

Views: 2317

Answers (1)

Iktedar
Iktedar

Reputation: 71

you are passing array $media_id

$messageparams['media_ids']=$media_id;

but it should be string not array of media_id ,

$media_ids_str = implode(',', $media_id);
$messageparams['media_ids']=$media_ids_str;

Upvotes: 6

Related Questions