TwitterのAPIでプロフィール画像を変更する

Twitterのプロフィール画像をAPIを使って変更する際につまづいたので メモっておきます。

<h2>コードは以下のような感じです</h2>


  require_once('HTTP/OAuth/Consumer.php');
  session_start();

  //--------------------------------------
  //consumer_key & secret
  //--------------------------------------
   $consumer_key = 'your_key';
   $consumer_secret = 'your_secret';
   $oauth = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
  //-------------------------------------- 
   
   $http_request = new HTTP_Request2();
   $http_request->setConfig('ssl_verify_peer', false);
   $consumer_request = new HTTP_OAuth_Consumer_Request;
   $consumer_request->accept($http_request);
   $oauth->accept($consumer_request);
   
   $oauth->setToken($_SESSION['oauth_access_token']);
   $oauth->setTokenSecret($_SESSION['oauth_access_token_secret']);

   $http_request->addUpload('image','image.jpg');  // addUploadの二番目のパラメータに画像の場所を指定
   $result = $oauth->sendRequest('http://api.twitter.com/1/account/update_profile_image.xml',array(),"POST");

プロフィール画像を変更する際にはupdate_profile_imageにPOSTをします

始めはsendRequestのarrayの中にbase64でエンコードした値を突っ込んでみたりしてたのですが、 それではダメで、http_requestのaddUploadを呼び出すことですんなり画像を変えることができました。