Opensocial入門を読んで見た(第五章)二回目

   

totoBIGが当然のように外れたのでテンションは低めですが、前回に引き続き「OpneSocial」のAPIの勉強をしたいと思います。
mixiアプリの大本営も参考にしていきます。

OpenSocial入門 ~ソーシャルアプリケーションの実践開発
OpenSocial入門 ~ソーシャルアプリケーションの実践開発

会員情報項目の取得


[cc lang=”javascript”]
var = params{};
params = [opensocial.DataRequest.PeopleRequestFields]=[
opensocial.Person.Field.AGE,
opensocial.Person.Field.GENDER,
opensocial.Person.Field.CURRENT_LOCATION];
var req = opensocial.newDataRequset();
req.add(req.newFetchPersonRequest(opensocial.IdSpec.PersonId.VIEWER,params),”viewer”);
req.send(function(data){
var person = data.get(“viewer”).getData();
var age = person.getField(opensocial.Person.Field.AGE);
var gender = person.getField(opensocial.Person.Field.GENDER);
if(gender.getkey() == opensocial.Enum.Gender.FEMALE){
//女性だった際の処理
} else if(gender.getkey() == opensocial.Enum.Gender>MALE){
//男性だった際の処理
} else{
//性別が登録していなかった時の処理
      }
var address = person.getField(opensocial.Person.Field.CURRENT_LOCATION);
});
[/cc]

opensocialによってあらかじめ選択肢が規定されている項目があります。上記の例で言えば「opensocial.Enum.Genderクラス」によってMALE,FEMALEとがフィールドに定義されています。
また、お気に入りなどで複数項目を設定があった場合、getField()を使った際には配列で情報を得ることができます。

opensocial.Person.Fieldクラスには様々なフィールドが用意されていますが、通常はOpensocial対応SNSによって取得に関して一定のルールが定められています。このルールのことを「パーミッションモデル」と言います。
mixiアプリにおいても対象となる情報があります。くわしくはこちら


アクティビティの作成

アクティビティとは更新情報のことです。
このアクティビティの作成と公開はOpenSocialアプリを実行している会員(VIEWER)に対して行われます。つまり作成されたアクティビティの持ち主はOpensocialアプリを実行したユーザーになります。

[cc lang=”javascript”]
//OpenSocial.Activityオブジェクトを作成する。
var params = {};
params = [opensocial.Activity.Field.TITLE] = “ハイスコア情報” ;
params = [opensocial.Activity.Field.BODY] = “誰よりも高い点数を獲得しました。”;
var activity = opensocial.newActivity(params);
//アクティビティの生成をサーバーに依頼する。
opensocial.requestCreateActivity(activity , opensocial.CreateActivityPriority.LOW,function(response){
if(response.hadError()){
var code = response.getErrorcode();
var msg = response.getErrorMessage();
//エラー発生時の処理
                       } else{
//アクティビティ作成完了の処理
                      }
});
[/cc]

opensocial.CreateActivityPriority.LOWでアクティビティの優先順位を決めていますが(HIGHかLOW)、現在のmixiアプリではこの優先度をサポートしていませんので、 opensocial.CreateActivityPriority.HIGHを指定しておけば良いでしょう。

アクティビティは文字列だけではなく、画像や動画なども設定できます。その際にはopensocial.newMediaItem()関数使います。その後にOpenSocial.Activityに追加します。

[cc lang=”javascript”]

var mediaItem = opensocial.newMediaItem(“image/gif” , “http://albatrus.com/image.gif/”);

var params = {};
params = [opensocial.Activity.Field.TITLE] = “ハイスコア情報” ;
params = [opensocial.Activity.Field.BODY] = “誰よりも高い点数を獲得しました。”;
params = [opensocial.Activity.Field.MEDIA_ITEMS] = [mediaItem];
var activity = opensocial.newActivity(params);
opensocial.requestCreateActivity(
activity,opensocial.CreateActivityPriority.HIGH,function(response){
//アクティビティが完了した際の処理
});
[/cc]

アクティビティの遷移先の指定

アクティビティをユーザーがクリックした際に飛ぶリンク先を指定できます。その際には「opensocial.Activity.Field.URL」を使って設定します。

[cc lang=”javascript”]
data[opensocial.Activity.Field.URL] = “http://albatrus.com /run_appli.pl?id=” + appId + “&” + escaped;
var activity = opensocial.newActivity(data);
opensocial.requestCreateActivity(
activity,opensocial.CreateActivityPriority.HIGH,function(response) { }
);
[/cc]

これ以外に、mixiアプリは以下のカスタマイズを行うことが可能です。

  • 遷移先のページ – run_appli.pl(アプリ画面)もしくはview_appli.pl(アプリ紹介画面)
  • mixiアプリ起動時に渡したいパラメータ – appParams
パラメータを指定できることで、特定のアクティビティからのmixiアプリ起動時に動きを変化させる、などの工夫を行うことができます。

Related Posts Plugin for WordPress, Blogger...