dari88's diary

これから趣味にするプログラミング/PHP/javascript/kohana/CMS/web design/

PHPで外部サイトのAPIを使ってみる・・・マッシュアップは唖然とするほど面白いな!

今日もNetBeansにて「PHP逆引き大全 516の極意」のサンプルコードを教材にPHPの勉強を進めています。

今日のお題は第9章「マッシュアップの極意」です。これは唖然とするほど面白かったです。例題で使っている bit.ly と FlickrTwitter のアカウントは持っていたので、APIのキーとか比較的容易に入手して実験することが出来ました。Twitter のケースでは php.ini の open_basedir の設定と、Twitter 側の API の設定で引っ掛かってちょっと手こずりました。経過と結果をメモしておきます。

<経過と結果>
・9-1「短縮URL」では bit.ly の API を利用して URL を短縮したり戻したりします。API Key 一個を入手するだけで利用できるので、とても簡単です。
・9-2「Google検索API」は Key の入手も不要ですぐに実行できます。が、検索結果が4件しか帰ってこないので利用価値が少ないかもしれません。ここで注目したのは json_decode() という関数を使っている点です。Json データについては今まで勉強していなかったと思います。
・9-3「Flickr検索API」は非常に面白かったです。FlickrAPI Key も簡単に入手できます。キーワードに関連する写真を適当に(多分それなりの評価のものを)沢山送ってきます。緯度経度情報で地域を絞ったり出来て感動モノでした。但し、サーバー側に写真の実体を送ってくるわけではないので、PHP で加工するようなことは出来ませんね。
・9-4「TwitterAPI」では、例題 497,498,499 は読み込みだけなのでキーも要らず簡単です。位置を絞ったキーワードに関連するつぶやきを拾うなど、面白いと思います。
・例題 500「つぶやきを投稿する」でかなり難儀しました。先ずは pear ライブラリから2個ほどインストールする必要があります。ステーブル版が無いので、両方共バージョン指定が必要です。コマンドラインから次の2つの命令を実行してインストールします。

pear install Services_Twitter-0.6.3
pear install HTTP_OAuth-0.2.3

・この時 php/PEAR/の下以外に、指示もしていないのに c:\php/の下にもフォルダが作られます。ここが実行時にも利用されるようで、後ほど問題になります。
Twitter 側の API Key の確保でも知識がないだけに試行錯誤となりました。デフォルトでは Read だけの設定なので、Write 属性も確保する必要があります。Setting タブで設定した後で、Details タブの下の方の Recreate my access token ボタンを押して、再発行する必要があるようです。
・実行時には php.ini の open_basedir を c:\xampp に設定していたので 上記の c:\php にアクセス出来ずにエラーが出ました。 open_basedir に複数のパスを設定する書式でも引っかかりましたが、結論は次の通りでした。ダブルコーテーション(”)が抜けるとダメなんですね・・・(^^;;;

open_basedir = "パス1 ; パス2"

 ・以上で無事に Twitter に投稿することが出来ました。あくあまでも自分のアカウントでの投稿ですけど。

以上なんですけど、今日も大変勉強になりました。それにして、もそろそろ xoops のモジュール制作の勉強に移りたいなと考えています。