mixiアプリを作ってみた
Javascriptを体系的に学んだわけでもないのですが、好奇心から作ってみましたmixiアプリ。このエントリでは「ちょっと興味はあるけど…」という方の、最初の一歩となる部分を紹介します。僕自身わかっていないことも多数あるのですが、とりあえず始めるためのhow toは網羅しようと思います。
最低限必要なもの
- Firefox + Firebug(もしくはGoogle Chromeのように、高機能なデバッガを揃えたブラウザ)
- 使い慣れたテキストエディタ
- Webサーバ(自前でもレンタルでも)
ブラウザに関してはFirefoxとFirebugの組み合わせがおすすめです。情報リテラシの高い人はGoogle Chromeを使ってるかもしれませんが。IEとかSafariとかはよく知りません。
mixi Developer Centerへ登録
mixi Developer Center(以下mixi DC)に登録します。登録には個人情報も必要となるので、利用規約等はよく注意して読んで下さい。mixi DC内のドキュメントは豊富ではありませんが、ある程度目を通した方が今後のために良いでしょう。
Hello World
試しにmixi DCにあるHello Worldを書きます。ファイル名は適当にhello.xmlなどとします。文字コード、BOMには要注意。UTF-8、BOMなし、改行LFが無難です。
<?xml version="1.0" encoding="UTF-8"?> <Module> <ModulePrefs title="Hello, world!"> <Require feature="opensocial-0.8" /> </ModulePrefs> <Content type="html"><![CDATA[ <div>Hello, <span id="target"></span>!</div> <script type="text/javascript"> function init() { var req = opensocial.newDataRequest(); req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER), "viewer"); req.send(function(data) { var viewer = data.get("viewer").getData(); var name = viewer.getDisplayName(); document.getElementById("target").innerHTML = name; }); } gadgets.util.registerOnLoadHandler(init); </script> ]]></Content> </Module>
mixiアプリ登録
mixi DCに無事登録されていればアプリも登録できるはずです。アプリ名、カテゴリは後から変更できるので、とりあえず適当に埋めます。ガジェットURLには、先ほどアップしたxmlファイルのURLを入力します。
アプリを動かしてみる
Hello, (mixi内のニックネーム)!
こんな感じで表示されたと思います。これでHello Worldは完成です。mixiプロフィールページにアプリガジェットを配置することもできます。
実際のコーディング
Hello Worldは書いたわけですが、毎回サーバへxmlファイルをアップして、mixiで確認、というのは大変です。ってことで実際書くときは、SIROの独り言さんで紹介されているように、Google Gadget Editorを使うのが良いです。
テキストエディタで書いたものをGadget Editorにコピペし、Previewタブで確認します。デバッグもFirebugなどで手軽に行えるでしょう。
注意点
Gadget Editorで作ったxmlファイルも、最終的にはサーバにアップして、mixiから参照するよう設定変更します。この際、mixiのサーバのキャッシュを削除するのを忘れないで下さい。キャッシュ削除も設定変更ページから行えます。
作ってみて
Google Ajax Feed APIを利用してPeercastの人気YP、CPのチャンネル更新情報を表示するアプリを作ってみました(非公開)。ま、結果は使いものにならなかった言いますか。Google APIを使ってるせいか、フィードの更新が遅いのです。それにいつも見るわけではないmixiに載せてもどうしようもないという…。
現在mixiアプリはもちろん、Facebook Applicationsでさえ、流行っているのはくだらないFlashゲームばかりです。ソーシャルネットアプリの登場でこの現状は一気に変わる、と偉い人が仰っていましたが本当にそうなるんでしょうかねぇ。アイデア一つで変わる気はしますが。