2009年6月19日金曜日

アクティビティの送信

今回は、アクティビティの送信の仕方。「アクティビティ」とは、OpenSocialアプリに対する、何らかのアクションのこと。例えば、mixiアプリでのアクティビティは、「マイミクシィ最新アプリ更新履歴」としてプロフィール画面に表示される。

マーケティング用語でいえば、バイラルマーケティングに有効な機能だ。さて、「ボタンを押したら"Hello!"というアクティビティを送信する」だけのシンプルなアプリだったら、以下のようになる。

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
  <ModulePrefs title="ActivityTest">
    <Require feature="opensocial-0.8"/>
  </ModulePrefs>
  <Content type="html">
  <![CDATA[
    <script type="text/javascript">
      function submitActivity() {
        var params = {};
        params[opensocial.Activity.Field.TITLE] = "Hello!";
        var activity = opensocial.newActivity(params);
        opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, onResponse);
      }
      
      function onResponse(response) {
        if (response.hadError()) {
          alert(response.getErrorCode() + ":" + response.getErrorMessage());
        } else {
          alert("Success!");
        }
      }
    </script>
    
    <button onclick="submitActivity();">Say Hello!</button>
  ]]>
  </Content>
</Module>

ボタンを押すと、submitActivity()関数が呼び出され、アクティビティの作成、送信が行われる。アクティビティを作成しているのが

var params = {};
params[opensocial.Activity.Field.TITLE] = "Hello!";
var activity = opensocial.newActivity(params);

の部分で、opensocial.newActivity()メソッドがアクティビティを作成している。このメソッドは引数を一つだけとり、アクティビティに関する各種パラメータを指定することができる。ここでは、アクティビティのタイトルを"Hello!"としたものを引数にとっている。

そして、

opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, onResponse);

で、アクティビティを実際に送信している。opensocial.requestCreateActivity()は3つの引数(アクティビティオブジェクト、優先度、コールバック関数)をとるが、mixiアプリでは「優先度」をサポートしていないようなので、第2引数はopensocial.CreateActivityPriority.HIGHとしておけばよいようだ。

あとは、コールバック関数onResponse(response)で、エラー処理をしている。responseは、opensocial.ResponseItemオブジェクトで、hadError()メソッドなどを用いることができる。

参考URL:
mixi Developer Center

0 コメント:

コメントを投稿