最近,Mixiアプリの勉強をしています.で,色々と小さなコードを書いているうちに,Mixiアプリで出来ること,できないことがわかってきました.
これは,Mixiアプリに限ったことではなくて,Windowsアプリでも,Webアプリでも,組み込みアプリでも共通して言えることだと思うんですが,特定のプラットフォームの上で何らかのアプリを開発しようと思ったとき,その環境で出来ること,できないことを正しく認識することはとても大事だと思っています.
なぜなら,アイデアを作って,それを実現するために実際にアプリを作りはじめてから実現不可能なことに気がついた時の精神的ダメージは計り知れないものがあるからです.
なので,とりあえずわかった範囲でまとめてみました.
できること
ユーザの情報を取得する
MixiアプリからはアプリをインストールしたユーザのIDと,そのユーザのページにアクセスしてきたユーザのIDを知ることができます.
そのIDをキーにすることで,ユーザの名前,誕生日,住んでる地域,マイミクのID,参加しているコミュニティ,アプリのインストールの有無等の情報を取得することができます.
Mixiから与えられた表示領域の中に任意のHTMLを表示する
Mixiから与えられた表示領域とは,各ユーザのトップページの右下と,各アプリの専用ページがあります.この領域の中は各アプリで自由に利用することができます.具体的には,次の図の赤で囲んだ部分です.
外部のサーバと通信する.
外部のサーバともかなり自由にHTTPで通信することができます.
ただし,JavaScriptが直接XMLHttpRequestでアクセスするわけではなく,mixiが用意したProxyサーバを介して通信しているようです.
Mixiサーバにデータを保存する
アプリで利用するためのデータをMixiのサーバに保存することができます.つまり,自分でデータ保管のためだけにサーバを用意する必要はありません.
ただし,要領の制限があるので注意する必要はあります.
できないこと
アプリ領域以外の場所にアクセスする.
MixiのWebサイトのアドレスはmixi.jpですが,mixiアプリはIFRAMEの中で実行されます.そして,そのアドレスはmixi-platform.comです.つまり,mixiのWebサイトとは別ドメインで実行されています.このため,parentを用いてIFRAMEの親フレームにアクセスすることができません.
ですからたとえば,MixiのWebサイトのデザインやレイアウトを変更したりとか,そういったことはできません.
ユーザのリファラ情報を取得する.
これも上記と同じ理由なのですが,ユーザのリファラを取得することができません.つまり,アプリ側から,このユーザは○○のコミュニティ経由でこのユーザのトップページに訪れた,といった情報を得ることはできません.
すべてのユーザのすべての情報にアクセスできない
プロフィールの項目はそれぞれ,全体に公開,友人に公開などといった公開範囲の設定を行うことが可能です.当然かもしれませんが,全体に公開にしていないと,Mixiアプリから情報を取得することはできないようです.
また,これは公開情報ですが任意のユーザのマイミク一覧を取得することはできません.マイミク一覧を取得できるのは,アプリをインストールしているユーザに限られます.