1/24/2012

[php で OAuth を使ってみる:第五回] tumblr. に画像を post する

tumblr. に OAuth を使って画像を post してみる。
※この情報は 2012 年 1 月現在のものです。仕様が変更される可能性は充分にあるので、ご了承ください。

OAuth を使った認証の流れは tumblr. に文字を post する を参照。

post する
下記の php をアプリのディレクトリにアップする(予め tmp ディレクトリを 707 で作っておく)
<?php
// 一度自分のサーバにアップ
$uploaddir = './tmp/';
$photo = $uploaddir. basename($_FILES['img']['name']);
$path = 'アプリのあるドメイン'. 'tmp/'. basename($_FILES['img']['name']); // full path
move_uploaded_file($_FILES['img']['tmp_name'], $photo);

require_once 'HTTP/OAuth/Consumer.php';

$consumer_key = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで確認した OAuth Consumer Key
$consumer_secret = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで確認した Secret Key
$access_token = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで取得した access_token
$access_token_secret = 'xxxxxxxxxxxxxxxx'; // 以前のエントリーで取得した access_token_secret

$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);

$consumer = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
$consumer_request = new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$consumer->accept($consumer_request);

$consumer->setToken($access_token);
$consumer->setTokenSecret($access_token_secret);

$params = array(
  'type' => 'photo',
  'source' => $path,
  'caption' => 'テスト' // post する本文
);

$api_url = 'http://www.tumblr.com/api/write';
$response = $consumer->sendRequest($api_url, $params);
// 自分のサーバにアップした画像を削除
unlink($photo);

echo "<script type='text/javascript'>alert('画像「". $_FILES['img']['tmp_name']. "」をpostしました!');</script>\n";
?>

「引用」以外で必要な項目は公式ページを参考に。
Tumblr API v1 | Tumblr

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.