Tender Surrender

OpenSocialのSigned Requestは、ガジェットからの外部通信リクエストに署名を付けることで、パラメータの内容が改ざんされていないかを検証可能にする仕組みです。一般に2-legged OAuthやSigned Request、OAuth Consumer Requestという名前はすべて同じ、これを表しています。

実装自体は全く難しくないものなのですが、お手軽なライブラリがあまり出回っていないようなので、作ってみました。まずはベータとして公開します

特徴

Google CodeにあるOAuthのライブラリを利用しています。公開鍵はorkut、Google、Friendster、hi5、hyves、Netlog、そしてgooホームとmixiのものを同梱しています。

使い方

Google Codeからチェックアウトしてください。

svn checkout http://opensocial-signed-request-php-library.googlecode.com/svn/trunk/ opensocial-signed-request-php-library-read-only

中身はサンプルガジェット(SignedRequest.xml)とサンプルのサーバーサイド実装(example.php)、そしてライブラリです。

サンプルのサーバーサイド実装を見て頂くのが一番早いですが、使い方はシンプル。ガジェットのURLを引数にしてSignedRequestValidatorをnewし、validate_requestメソッドを呼ぶだけ。署名の検証に失敗した場合は、勝手に401を返します。署名の検証に成功した場合のコードは、その後に続けて書けばOKです。

参考

僕の知る限り、他の言語でSigned Requestを検証するコードやライブラリを公開されている方も何人かいらっしゃいます。

まとめ

ベータ公開ではありますが、動作上の問題はないと思います。ただ、そのままのコードではGoogleからのリクエストもmixiからのリクエストもガジェットURLが合えば通してしまうため、任意に指定できるようにした方がいいかなど、フィードバックをもらって判断したいところと感じています。

※ちなみに、oauth_body_hashには未対応です。

というわけで、ぜひお試しください。

Read on...

WordPress2.8にアップグレードしてから使えなくなっていたWP_Multilingualという多言語を実現するプラグインですが、開発者のご好意でα版を頂き、復活しました。

今の所目立った問題もなく稼働しています。

以前であれば必要だったFCKEditorも不要になったため、Wordpressのきれいなインターフェースのまま入力できるようになっていたり、言語スイッチャがウィジェット化されていたりと、単に使えるようになっただけでなく、欠点だと思っていた部分もカバーされていて非常に良いです。日本語のローカライゼーションがなかったので、早速翻訳して言語ファイルを提供しておきました。

WordPress使いで多言語対応をご検討の方は、ぜひお試しください。

Read on...

ひょんなことから自分の作品でもないのに「おばかアプリ選手権」に狩り出されたので、せっかくだから出場してきました。場所はお台場のTOKYO CULTURE CULTUREという所。

発表したのは話題沸騰!weboo氏の「チャンネー」ガジェットです。

チャンネーはOpenSocialを使ったソーシャルアプリです。次々と表示されるチャンネー2枚の写真から好きな方を選んで行くとあなた好みの髪型が見つかる、という趣旨です。決まった髪型は取り置きすることもできます。友達のお気に入りの髪型が見れたり、お気に入りがアクティビティストリームに反映されたりする点がソーシャルアプリって感じです。

まあ、開発に当たって僕はいっさい何もしてないんですがね。

本番ではありがちなトラブル発生で、gooホームサンドボックスを使ってデモする予定が、mixiアプリを使うことになり、weboo氏が仕込んできてくれた色々なものの見せ場がなくて、ちょっと残念なことになってしまいました。

でも同じ「チームお色気」で出場したおっぱいエンジニアpuniTouchと絶妙なトークで挽回してくれたので、結果オーライ。

非常にユニークなイベントで楽しかったです。次回は自分の作品で出場できたらいいなあ。

レポートはこちらをご覧下さい。動画もあります。

Read on...

昨日SocialWeb Blogで紹介して頂いたあしあとガジェットですが、早速多数のフィードバックを頂いています。その中から、2点の改善を行いましたのでご紹介します。

あしあとの表示件数を設定

<br />{ id: 'div-1231298385220',<br />    'view-params': {<br />    'maxDisplay': '15'<br />  },<br />  url:'http://gadgets.agektmr.com/Footprints/friendconnect.xml',<br />  site: '00268510882932422418'<br />},<br />

あしあとは有無を言わさず10件表示する作りになっていましたが、HTMLに埋め込むコードの中に設定値を書き込むことで、変更できるようにしました。view-paramsを追加してmaxDisplayで表示したいあしあと数を指定してください。3から20の範囲で指定することができます。

スキンを設定

<br />var skin = {};<br />skin['BORDER_COLOR'] = '#cccccc';<br />skin['ENDCAP_BG_COLOR'] = '#e0ecff';<br />skin['ENDCAP_TEXT_COLOR'] = '#000000';<br />skin['ENDCAP_LINK_COLOR'] = '#0000cc';<br />skin['ALTERNATE_BG_COLOR'] = '#ffffff';<br />skin['CONTENT_BG_COLOR'] = '#ffffff';<br />skin['CONTENT_LINK_COLOR'] = '#0000cc';<br />skin['CONTENT_TEXT_COLOR'] = '#333333';<br />skin['CONTENT_SECONDARY_LINK_COLOR'] = '#7777cc';<br />skin['CONTENT_SECONDARY_TEXT_COLOR'] = '#666666';<br />skin['CONTENT_HEADLINE_COLOR'] = '#000000';<br />

デザインの一部として色を変更できるようにしました。GFCサイトからコピーした時点で含まれているskinの値を変更することで対応できます。実際に有効な値は下記の通り:

BG_COLOR: 全体の背景色
FONT_COLOR: フォント色
CONTENT_HEADLINE_COLOR: ヘッダ文字色
ENDCAP_TEXT_COLOR: フッタ文字色
ALTERNATE_BG_COLOR: あしあと背景色

Read on...