SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

mixiアプリで始めるOpenSocial入門

mixiアプリとアクティビティ

mixiアプリで始めるOpenSocial入門(6)

アクティビティ作成のサンプル

 それでは、今回のサンプルを見ていきましょう。

 今回は画像付きのアクティビティを登録するサンプルです。アクティビティのタイトルと、添付する画像のURLを2つのテキストボックスで指定し、ボタンをクリックすることで、アクティビティの登録を行います。

 今回作成するアプリは、mixiでも公開しています。実行結果は次のような画面となります。

アクティビティ登録サンプルの実行画面
アクティビティ登録サンプルの実行画面

 以下の内容をactivity-sample.xmlという名前でUTF-8形式で保存し、第2回の手順に沿ってアプリを作成します。

activity-sample.xml
<?xml version="1.0" encoding="UTF-8"?>
<Module>
    <ModulePrefs title="view-sample">
        <Require feature="opensocial-0.8" />
    </ModulePrefs>
    <Content type="html"><![CDATA[
<script type="text/javascript">
function createActivity() {
  var params = {};
  params[opensocial.Activity.Field.TITLE] = document.getElementById("message").value; *1

  if(document.getElementById("url").value != ""){
    var mediaParams = {};
    mediaParams[opensocial.MediaItem.Field.TYPE] = opensocial.MediaItem.Type.IMAGE;
    var mediaItem = opensocial.newMediaItem("image/jpg", document.getElementById("url").value, mediaParams); *2
    params[opensocial.Activity.Field.MEDIA_ITEMS] = [mediaItem];
  }

  var activity = opensocial.newActivity(params); *3
  opensocial.requestCreateActivity(activity,opensocial.CreateActivityPriority.HIGH,function(response) { *4
  if (response.hadError()) { *5
    alert(response.getErrorCode() + ":" + response.getErrorMessage());
  } else {
    alert("Success!");
  }
});
}
</script>
アクティビティのタイトル: <input type="text" id="message"><br/>
画像のURL: <input type="text" id="url" size="50">
<button onclick="createActivity()">アクティビティ送信</button>
]]></Content>
</Module>

 ボタンクリック時にcreateActivity関数が呼ばれ、以下の手順で処理が行われます。

  1. アクティビティ作成時のパラメータとして、TITLEフィールドを設定します。値はDOM操作でテキストボックスから取得します。
  2. アクティビティに添付する画像を、MediaItemオブジェクトとして作成します。URLはテキストボックスから取得します。今回はJPEG形式の画像としてimage/jpgというMIMEタイプを設定しています。作成したMediaItemオブジェクトは次行でMEDIA_ITEMSフィールドに設定します。なお、URLテキストボックスが空の場合はMEDIA_ITEMSフィールドは設定しません。
  3. TITLEフィールド、MEDIA_ITEMSフィールドを指定したパラメータを引数として、opensocial.newActivity関数でアクティビティを作成します。
  4. opensocial.requestCreateActivity関数でアクティビティを登録します。
  5. 登録結果にエラーがあるかどうかを判断してメッセージを表示します。

 それではサンプルを実行してみましょう。アクティビティのタイトルと、添付するJPEG画像のURLを指定してボタンをクリックします。

タイトルとURLを指定して実行
タイトルとURLを指定して実行

 OpenSocialコンテナでの処理が行われ、コールバック関数でアクティビティの登録の可否がダイアログ表示されます。

アクティビティの登録に成功
アクティビティの登録に成功

 登録したアクティビティは、他のユーザーのポータル画面に表示されます。

自分の登録したアクティビティが他のユーザーのポータル画面に表示される
自分の登録したアクティビティが他のユーザーのポータル画面に表示される

 画像付きのアクティビティを登録し、他のユーザーからも閲覧できるようになりました。

まとめ

 今回はアクティビティの作成から登録までの流れを押さえることができました。アクティビティの使い方は今回の記事で説明した内容がほとんどで、コード的にはごくシンプルです。

 しかし繰り返しになりますが、アクティビティはSNSならではのコミュニケーションを促進する、強力な機能です。SNSで日記を書いても、写真を投稿しても、だれにも更新情報が知らされないとしたら……と考えると、アクティビティの強力さを改めて感じることでしょう。しかもアクティビティはSNS標準アプリケーションに限られておらず、OpenSocialアプリケーションからも活用することができます。アクティビティの使い方次第で、アプリケーションの利用者数は大いに増加することでしょう。

 それで、OpenSocialアプリケーションを設計する際には、アクティビティ機能をどのように使うかを熟考しましょう。特に、OpenSocialコンテナでのサポートされている機能の差異にもよく注意を払ってください。

 次回はOpenSocialアプリケーションでのデータの永続化について扱います。お楽しみに。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
mixiアプリで始めるOpenSocial入門連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 土井 毅(ドイ ツヨシ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4611 2009/12/15 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー