OpensocialのRESTfulAPIでPUTメソッドを使うサンプル
    このエントリをはてなブックマークに登録

2010/9/29 水曜日 matsui Posted in PHP | No Comments »

昨日に引き続きOpensocialネタです。

ソーシャルゲームなどを作成する際にOpensocialのRESTfulAPIを使うことがあります。

GETやPOSTの情報は、検索するとそれなりに出てきますし、サイト上にもサンプルがあったりするのですが、PUTメソッドやDELETEメソッドでの接続を要求されることがあります。
存在は何となく知っていたものの、そんなメソッドは当然使ったことはなく、検索してもサンプルも少なく困りました。

 

ということで、本日はOAuth署名付きのリクエストでPUTメソッドを送信するサンプルを公開してみます。
(国内モバイル向けのソーシャルアプリは色々と情報公開に制限があるので、差し障りの無い範囲でまとめました)

コードは、こちらのOAuth.phpに依存しています。
example内にあるコード例を参考にさせて貰いました。

→ oauth – Project Hosting on Google Code [code.google.com]

 

// アプリの設定
$id = '123456';
$consumer_key = 'abcdef';
$consumer_secret = 'uvwxyz';

// APIのURL
$end_point = 'http://example.jp/foo/bar/@app';

// パラメータ
$get_params = array('xoauth_requestor_id' => $id, 'format' => 'json');
$put_data = json_encode(array('data' => 'ほげほげ'));

$cons = new OAuthConsumer($consumer_key, $consumer_secret, NULL);
$req = OAuthRequest::from_consumer_and_token($cons, NULL, 'PUT', $end_point, $get_params);
$req->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $cons, NULL);

$url = $end_point . '?' . http_build_query($get_params);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $put_data);
$auth_header = $req->to_header();
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_header));

$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

 

curlでPUTする方法は幾つかあるようなのですが、こちらの方法が一番シンプルだったので参考にさせて貰いました。

→ PHP Manual curl_setopt (Ed Cradock氏 05-Feb-2010 06:47のコメント) [www.php.net]

 

とりあえず動作することは確認しましたが、あまり本気で使っていないため、何かツッコミがありましたらお願いします。

DELETEメソッドもこの応用でいけるのですが、それはまた後日にでもまとめたいと思います。

 

関連:




フレームワークを使ってOpensocialのOAuth認証を通す場合のハマりどころ
    このエントリをはてなブックマークに登録

2010/9/28 火曜日 matsui Posted in 記事紹介・リンク | No Comments »

近頃流行のOpensocialネタです。

mixiアプリやモバゲーなどでソーシャルゲームを作るにはOpensocialのOAuth認証で、署名をチェックするという処理があります。

リクエストのURLやパラメータなどから、アクセスの妥当性をチェックするというものなのですが、フレームワークを使っているとハマることがあるので、メモ代わりに書いておきます。

 

例えばCakePHPなどフレームワークの.htaccessではこのような形になっていることがあります。
このmod_rewriteの処理が「url」というGETパラメータを付けて署名認証をエラーにしてしまうのです。

RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

 

回避するには簡単で、$_GETからunsetしてやればOKです。

// 余計なパラメータをunsetする
unset($_GET['url']);

//Build a request object from the current request
$request = OAuthRequest::from_request(null, null, array_merge($_GET, $_POST));

参考: mixi Developer Center 署名付きリクエストの検証 [developer.mixi.co.jp]

 

モバイルなどでconsumer keyを使った認証では、OAuth.phpでは$_SERVER[‘QUERY_STRING’]を使っているので、次のように一度ばらして再構築でいけました。

parse_str($_SERVER['QUERY_STRING'], $query_arr);
unset($query_arr['url']);
$_SERVER['QUERY_STRING'] = http_build_query($query_arr);

 

モバイル版の参考コードもここに書きたいところですが、各社ともモバイル版の情報はなぜか非公開らしいので自重しておきます。

上記はPHPの例ですが、基本どの言語でも変わらないはずです。

 

関連:




日本Ruby会議2010の発表で使われたスライド資料「Ruby on Railsではじめる携帯電話向けオープンソーシャルアプリケーション開発」
    このエントリをはてなブックマークに登録

2010/9/27 月曜日 matsui Posted in 記事紹介・リンク | 1 Comment »

先月行われた日本Ruby会議2010の発表で使われたスライド資料「Ruby on Railsではじめる携帯電話向けオープンソーシャルアプリケーション開発」が公開されていましたのでご紹介します。

 

内容はその題名の通り、Ruby on Railsを使って、最近流行のソーシャルアプリを作るというものです。

なぜRubyを選択したのか、ソーシャルアプリ制作の流れなどが解説されています。

 

→ SlideShare Ruby on Railsではじめる携帯電話向けオープンソーシャルアプリケーション開発 [slideshare.net]

 

ニコニコ動画に、実際の発表動画がアップされていましたので、時間のある方はこちらを見るとわかりやすいかもしれません。

→ ニコニコ動画 [rk10][27M04] Ruby on Railsではじめる携帯電話向けオープンソーシャルアプリ [nicovideo.jp]

 

関連:




auのIPアドレス帯域が2010年10月から追加となります
    このエントリをはてなブックマークに登録

2010/9/24 金曜日 matsui Posted in au, ニュース | No Comments »

以前にも記事にしましたが、追加まで1週間を切ったので、再度お知らせします。

auのIPアドレス帯域が2010年10月に追加となります

 

→ KDDI au 技術情報 IPアドレス帯域 [au.kddi.com]

 

111.86.143.192/27
111.86.143.224/27
111.86.147.0/27
111.86.142.128/26
111.86.142.192/26
111.86.143.0/26

 

あわせて6つの帯域が追加になっています。

追加されるという10月まであと1週間ですので、まだ作業していないという方は、そろそろ準備をしたほうがよいと思います。

 

関連:




ケータイ向けFlashソーシャルゲーム開発に関する連載記事「いまさらFlash Lite 1.1を使うための基礎知識」
    このエントリをはてなブックマークに登録

2010/9/22 水曜日 matsui Posted in Flash, 記事紹介・リンク | No Comments »

@ITに、ケータイFlashについての連載記事がありましたのでご紹介します。

 

→ 「ソーシャルゲームに生かすFlash Lite制作テク」 いまさらFlash Lite 1.1を使うための基礎知識 [atmarkit.co.jp]

 

連載は、「ソーシャルゲームに生かすFlash Lite制作テク」というもので、その第1回として、「いまさらFlash Lite 1.1を使うための基礎知識」という記事が掲載されています。

Flash Lite 1.1の開発ツール紹介から、PC向けFlash開発との違い、Flash Lite 1.1ならではのハマりどころ、などがまとめられており、すぐ使えそうな実践的な内容になっていると思います。

 

ケータイ向けソーシャルゲームは、今流行っていますし、タイムリーで需要がありそうな連載ですね。
第2回が楽しみです。

 

関連: