mixiアプリを動かしてみよう(基本編)

2010年9月22日(水)
森 和之

アプリを登録しよう

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)

株式会社ミクシィ

パートナーサービス部 第1プラットフォーム開発チーム
1985年生まれ。2007年に株式会社ミクシィの最初の新卒として入社。Find Job !の開発を半年間経験したのち、mixi開発グループに移動。mixiアプリのプロジェクトの立ち上げから開発を担当し、以降現在までmixiアプリ及び mixi Platformの開発をしている。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています