mixiアプリを動かしてみよう(基本編)
アプリを登録しよう
XMLファイルが出来たら次はアップロードです。ファイルの置き場所は外部からアクセス出来る場所ならどこでもよく、無料レンタルサーバーでも構いません。ただ、第1回でも触れたように、実際にアプリを公開する段階になったら、クラウド上のサービス(Amazon EC2やGoogle AppEngine)を活用するのがいいでしょう。また、Dropbox、GoogleDocs、OpenSocial Hostなどのサービスを使うと開発が楽になるので積極的に利用しましょう。
アップロードしたら、https://sap.mixi.jp/home.plにアクセスして必要事項をうめて、DropboxなどにXMLファイルをアップロードしてインターネットから見える状態にして、URL欄にそのXMLファイルのURLを入れてアプリを作成します。
さぁ、view_appli.plに移動して「アプリ実行ページへ」の文字が出来たら準備は終わりです!「アプリ実行ページへ」リンクを押してみましょう。
画像をクリックで拡大 |
上の画像のとおりにHelloと表示されたでしょうか?
完成したアプリはこちらからダウンロードできます。
マイミクの情報を取得しよう
第1回でソーシャルゲームの重要性を説明しましたが、ここでソーシャルゲームの肝となるソーシャルグラフ(マイミク)の情報を使ってみましょう。
プログラムを書き始める前に、OpenSocialで重要なViewerやOwner、Friendsの概念を説明したいと思います。
Viewer | 現在ブラウザを操作している人 |
ViewerFriends | Viewerのマイミク |
Owner | そのページの所有者 |
OwnerFriends | Ownerのマイミク |
Other | それ以外の人 |
mixiアプリの基本的な操作はほとんどViewerが対象となります。しかし、その役割は表示されるビューによって変わってきます。Canvasビューやhomeビューでは、Viewer(操作しているユーザー)の情報を表示するのがいいでしょう。それに対して、Profileビューは他人のプロフィールを見に行ったときに表示されるため、OwnerまたはOwnerFriends(そのprofileに記されているユーザー)の情報を表示するのが自然です。
ここで注意したいのは「Owner以外のユーザーは対象となるアプリを追加しているとは限らない」ということです。アプリを追加していないユーザーの場合、取得できるプロフィール情報は極端に少なくなります。アプリを追加しているかどうかによってアクセスできる情報(パーミッション)が変わってくるので、ぜひおさえておきましょう。
Viewer/Ownerの概念を理解したら、先程のViewerを表示するアプリを、マイミクの情報を取得するアプリに置き換えてみます。「Hello, 」の下にそのマイミクのニックネームとプロフィールページへのリンクの一覧を表示するアプリです。
画像をクリックで拡大 |
完成したアプリはこちらからダウンロードできます。
マイミク一覧を取得するには以下のように記述します。
ここで重要なのがIdSpecとnewFetchPeopleRequestとopensocial.Collectionです。
この章の最初に説明したように、opensocial.IdSpecではどの登場人物の中から、誰の情報が欲しいかを設定します。opensocial.newIdSpecでIdSpecオブジェクトを作成します。
opensocial.newIdSpec(params)
第1引数に渡すのはopensocial.IdSpec.FieldをKeyとするObject(hash)です。この場合はuser_idにVIEWERを、group_idにFRIENDSを指定しているため、Viewerのマイミクをさしています。IdSpecはnewFetchPeopleRequestなどのDataRequestにaddする関数の第1引数に渡すことで、取得するデータの対象を指定出来ます。opensocial.DataRequest.newFetchPeopleRequestは複数のプロフィール情報を取得する場合に利用します。
Object newFetchPeopleRequest(idSpec, opt_params)
第1引数には先程説明したIdSpecを指定します。第2引数には取得したいデータの設定を、opensocial.DataRequest.PeopleRequestFieldをキーとしたObject(hash)で指定します。この場合はdetails変数にopensocial.DataRequest.PeopleRequestFields.PROFILE_DETAILSがキーの配列を入れることで取得するプロフィールの一覧を、opensocial.DataRequest.PeopleRequestField.MAXで一度に取得する件数を指定しています。
opensocial.DataRequest.newFetchPeopleRequestの結果は複数であるため、opensocial.Collectionオブジェクトで帰ってくるので、opensocial.Collection.each関数を使用して1件づつ処理します。
opensocial.Collection.each(fn)
each関数の第1引数に渡した関数は、Collectionから1件ずつ引数に渡されて呼ばれます。ここでは無名関数を渡して、1件ずつマイミクが渡ってくるのでその情報を表示しています。JavaScriptに合わせてHTMLも以下のように変えます。
マイミク一覧の取得は以上です。マイミクの取得やViewer/Ownerの概念はソーシャルアプリを作る上での基本になります。しっかり身につけましょう。マイミク一覧のページングや、アプリを追加しているマイミクだけ取得などは、こちらを御覧下さい。
詳細情報:mixi Developer Center「プロフィール情報・マイミク情報を使ってみよう」
これまでソーシャルアプリを作る上で重要なプロフィールAPIを解説しました。3ページ目ではそれ以外のAPIを使ってみたいと思います。
「mixiアプリを動かしてみよう(基本編)」サンプルプログラム(1)