2011年01月13日

Titanium + PHP + PEAR

前回「関西アンカンファレンスに参加してきましたよっ!」という記事を書きました。「PHP 光源氏計画」などというふざけたネーミングでしたが、こちらの
 松江市は2011年1月8日、市内の中学生を対象にしたRuby教室を開催した。ゲーム用拡張ライブラリのDXRubyを使い、自分で作ったキャラクタによるシューティングゲームを作成した。
松江市が中学生Ruby教室開催、DXRubyでゲーム作成 - ニュース:ITpro
こういった取り組みには、言語を問わず学ぶべきだと思うんですよね。松江市出身の自分が PHP 光源氏計画を始動したら故郷から謗りを受けそうですけど。

とまあ、いきなり閑話から入りましたごめんなさい。ここから本文です。

当日のまとめ Togetter - 「第2回関西アンカンファレンス」 を見ていたら
スクリーンショット(2011-01-13 1.21.38).png
Twitter / @オコノミ
という Tweet があって、これは是非やっておかないといけないな…と。

そこで
PHPでTwitter APIのOAuthを使う方法まとめ - 頭ん中
この msng さんの記事を参考に、簡単な Twitter アプリ(未満)を Titanium + PHP + PEAR で作ってみました。元記事にあるように、 Net_URL2, HTTP_Request2, HTTP_OAuth の各最新版を入れるのですが、まずプロジェクトを作らないとインストールするディレクトリも存在しません。
で、作成…
スクリーンショット(2011-01-12 21.40.48).png
プロジェクトのディレクトリ(以下便宜上 AppDir と表記します)の中で AppDir/Resources/PEAR というディレクトリを作り、その中にライブラリを入れていくとします。(理由は後述)
こんな感じ
スクリーンショット(2011-01-13 1.40.07).png

で、アプリを組んでみます。

AppDir/Resources/func.php
<?php
ini_set ('include_path', ini_get('include_path') . '/PEAR');   // 注1
require 'HTTP/OAuth/Consumer.php';

function omikuji () {
	$consumer_key = 'YOUR_CONSUMER_KEY';     //注2
	$consumer_secret = 'YOUR_CONSUMER_SECRET';
	$oauth_token = 'YOUR_OAUTH_TOKEN';
	$oauth_token_secret = 'YOUR_OAUTH_TOKEN_SECRET';

	$consumer = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
	$consumer->setToken($oauth_token);
	$consumer->setTokenSecret($oauth_token_secret);
	
	$omikuji_array = array('大吉', '吉', '凶', '大凶', '処置なし');
	
	shuffle($omikuji_array);
	$status = 'test::' . $omikuji_array[0] . ' [' . date('Y-m-d H:i:s') . ']';
	$response = $consumer->sendRequest("http://twitter.com/statuses/update.json", array('status' => $status), "POST");
	$body = json_decode($response->getBody(), true);
	
	return $body['text'];
}
注1: ini_get('include_path') をすると AppDir/Resources となってます。デフォルトではこう指定されてるけど、ややこしくなりそうなので AppDir/Resources/PEAR と変更します。
注2: $oauth_token, $oauth_token_secret の取得は面倒なので省きます。アプリ登録時にデスクトップ用と指定して取得するなりして下さい。

で、 AppDir/Resources/index.html に
スクリーンショット(2011-01-13 10.55.21).png
こんな感じのコードを書きます。

例外処理とかエラー処理とか全然やってないし、公開するんだったら色々変えないといけない部分があるけど、一応これで
スクリーンショット(2011-01-13 1.00.14).png



スクリーンショット(2011-01-13 1.00.20).png

というものが出来ました。(YourApp/tiapp.xml に適切な画面サイズを記述してください。)

勿論 Twitter にも
tbsmcd / Tsubasa Mochida
test::処置なし [2011-01-13 01:00:17] at 01/13 01:00
こんな感じで投稿されてます。

ということで、
・PEAR のようなライブラリは依存関係や Path さえ通れば使えるみたい。
・ini_get('include_path') は AppDir/Resources
@ryo_ryoo_ryooo さんのせいでおみくじアプリなんて作ってしまった

という結論でどうでしょう?



/* 追記 */

実験に使ったアプリ名なんですが、以前遊んだもの を流用しただけです。なんかいま Favstar みたら結構 Fav られてたんで。


ラベル:PHP PEAR titanium
posted by tbsmcd at 02:06| Comment(1) | TrackBack(0) | 技術 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
つぶやきに反応いただきありがとうございます!
PEARふつうに使えるんですね。
これなら既存のコードをほとんどそのまま持ってこれそうでいろいろ夢が広がりますねー。
Posted by okonomi at 2011年01月13日 22:30
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。