cakePHP Tumblr component
試しに晒してみます。TumblrのAPIを扱うComponentです。まだちゃんとテスト出来てませんが、サンプルと思って頂けると幸いです。
tumblr.php
[PHP]
/**
* Tumblr Component
*
* @author Masahiko Satoh
* @version 0.1
* @license http://creativecommons.org/licenses/LGPL/2.1/deed.ja
* @link http://straighten.jp
*
*/
App::import('Core', array('Xml'));
class TumblrComponent extends Object {
var $email = null; //Your account's email address.
var $password = null; // Your account's password.
var $tumblelogUrl = null; // Your tumblogs URL ex) http://example.tumblr.com/
function info () {
return $this->_authenticate();
}
function read ( $params = null ) {
$this->requestUrl = $this->tumblelogUrl.’api’.DS.’read’;
return $this->_execute( $params );
}
function write ($params = NULL) {
$this->requestUrl = ‘http://www.tumblr.com/api/write’;
return $this->_execute( $params );
}
function delete ($params = null) {
$this->requestUrl = ‘http://www.tumblr.com/api/delete’;
return $this->_execute( $params );
}
function _authenticate () {
$this->requestUrl = ‘http://www.tumblr.com/api/authenticate’;
return $this->_execute();
}
function _execute ( $params = null ) {
$params['email'] = $this->email;
$params['password'] = $this->password;
$curl = curl_init($this->requestUrl);
curl_setopt($curl, CURLOPT_POST, true );
curl_setopt($curl, CURLOPT_POSTFIELDS, $params );
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $curl );
$status = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
$content_type = curl_getinfo( $curl, CURLINFO_CONTENT_TYPE );
curl_close( $curl );
if ($status == 200 ) {
if ( strstr( $content_type, ‘text/xml’) ) {
$xml = new Xml( $result );
$result = Set::reverse($xml);
}
} elseif ($status != 201 && $status != 200 ) {
$result = false;
}
return $result;
}
}
?>[/PHP]
インストール方法
- 上記のソースコードを/path/to/controllers/components/tumblr.phpに保存します
- 利用したいコントローラーでvar $components = array(‘Tumblr’);します。
簡単な使い方
[PHP]/* Tumblelogの情報取得 */
$this->Tumblr->email = ‘ログイン用メールアドレス’;
$this->Tumblr->password = ‘ログイン用パスワード’;
$this->Tumblr->info();
/* 書き込み(例はリンクの場合)*/
$this->Tumblr->email = ‘ログイン用メールアドレス’;
$this->Tumblr->password = ‘ログイン用パスワード’;
$params = array( ‘type’ => ‘link’, ‘url’ => ‘http://straighten.jp/’ );
$post_id = $this->Tumblr->write( $params );
/* 読み込み*/
$this->Tumblr->email = ‘ログイン用メールアドレス’;
$this->Tumblr->password = ‘ログイン用パスワード’;
$this->Tumblr->tumblelogUrl = ‘http://retextlog.tumblr.com/’;
$this->Tumblr->read();
/* 削除 */
$this->Tumblr->email = ‘ログイン用メールアドレス’;
$this->Tumblr->password = ‘ログイン用パスワード’;
$this->Tumblr->delete( array(‘post-id’=>’記事ID’) ) ); //記事IDはreadするか、writeした際に取得できます[/PHP]
その他、詳しいパラメーターに関しては、オフィシャルのAPI仕様を確認して下さい。
http://www.tumblr.com/api
Posted in: 技術の話
コメントする

