mixiアプリを作ってみた

Javascriptを体系的に学んだわけでもないのですが、好奇心から作ってみましたmixiアプリ。このエントリでは「ちょっと興味はあるけど…」という方の、最初の一歩となる部分を紹介します。僕自身わかっていないことも多数あるのですが、とりあえず始めるためのhow toは網羅しようと思います。

最低限必要なもの

ブラウザに関してはFirefoxFirebugの組み合わせがおすすめです。情報リテラシの高い人は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>

xmlファイルのアップロード

作成したxmlファイルをWebから参照できるところへアップします。このURLは次に行うmixiアプリ登録の際に必要となります。

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ゲームばかりです。ソーシャルネットアプリの登場でこの現状は一気に変わる、と偉い人が仰っていましたが本当にそうなるんでしょうかねぇ。アイデア一つで変わる気はしますが。