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を呼び出すことですんなり画像を変えることができました。