アプリを登録しよう

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現在ブラウザを操作している人
ViewerFriendsViewerのマイミク
Ownerそのページの所有者
OwnerFriendsOwnerのマイミク
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を使ってみたいと思います。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30