ラベル Google Apps の投稿を表示しています。 すべての投稿を表示
ラベル Google Apps の投稿を表示しています。 すべての投稿を表示

2010-08-16

OpenSocial Pages の最新ソースコード 0.9.3 を公開しました

こんにちは。Nobuhiro Nakajima です。

OpenSocial Pages の最新ソースコードを公開しました。Downloads から opensocial-pages-0.9.3.zip をダウンロードしてください。

Google Apps Marketplace で公開している OpenSocial Pages for Google Apps と同じソースコードになっています。ですので、次のとおり手を加えて、自分自身の環境で期待どおり動作するように、改造する必要があります。

web.xml

Google Data APIs に 2-Legged OAuth でアクセスするための Consumer Key と Secret を指定してください。Consumer Key と Secret は Google Apps Perimer の Advanced tools か Google Apps Marketplace で手に入ります。

<context-param>
    <param-name>consumerKey</param-name>
    <param-value>(Your Consumer Key)</param-value>
</context-param>
<context-param>
    <param-name>consumerSecret</param-name>
    <param-value>(Your Consumer Secret)</param-value>
</context-param>

PermissionFilter.java

OpenID Federated Login (Google Apps) を UserService を使って実装してあります。Google Apps Perimer で Google Apps と連携するときは、AppEngine の認証を Google Acount に切り替えて、Google Apps ドメインと関連付け、UserService を使っている個所を調整すればよいでしょう。

Google Apps や Google Apps Marketplace 関連の実装の参考になれば幸いです。

2010-08-11

OpenSocial Pages は osapi.http に対応しました。gadgets.io.makeRequest 以上の大きなメリットがあります。

こんにちは。Nobuhiro Nakajima です。

OpenSocial Pages for Google Apps で osapi.http API を使えるようにしました。

osapi.http は gadgets.io.makeRequest メソッドに相当するものです。さらに osapi.http は、バッチリクエストにも対応するため、gadgets.io.makeRequest メソッド以上のメリットがあります。
  • 1回の API 呼び出しで、複数の外部サーバにまとめてリクエストできます
  • 1回の API 呼び出しで、SNS のデータと外部サーバのデータをまとめてリクエストできます
次の例は Viewer のプロフィール情報と YouTube からマイ動画のリストを、まとめて取得するものです。
function init() {
  var batch = new osapi.newBatch()
    .add('viewer', osapi.people.getViewer())
    .add('videos', osapi.http.get({
      href: 'http://gdata.youtube.com/feeds/api/users/nakajiman1/uploads?alt=json',
      format: 'json'
    }));
  batch.execute(function(r) {
    gadgets.log(r.viewer.displayName); // Nobuhiro Nakajima
    gadgets.log(r.videos.status); // 200
    gadgets.log(r.videos.content); //  Object { version="1.0",  more... }
  });
}
gadgets.setLogLevel(gadgets.log.INFO);
gadgets.util.registerOnLoadHandler(init);
従来は Viewer のプロフィール情報は opensocial.newFetchPersonRequest メソッドと gadgets.io.makeRequest メソッドを別々に呼び出して、非同期のコールバックのタイミングを制御して、レスポンスをまとめる必要がありました。

が、osapi.http を使えばそんな必要はなく、Gadgets(=Apps) のソースコードをシンプルにより分かりやすく記述することができます。

OpenSocial Pages がサポートする osapi.http のオプションやフィールドは、OpenSocial Pages ドキュメントの Core Gadgte SpecCore Data Spec に記載しておきました。

2010-08-02

OpenSocial Pages ならここまで(まだまだ)できる Status Update Gadget をアップデートしました


こんにちは。Nobuhiro Nakajima です。

OpenSocial Pages 向けの Status Update Gadget をアップデートしました。

Gadget のソースコードは、Downloads から入手できます。status-update.xml をダウンロードして、OpenSocial Pages の Control Panel から追加すれば、今すぐ動作を体験できます。

OpenSocial Pages を使うと、PC に加えて、iOS や Android のモバイルブラウザで動作する Twitter のような タイムラインベースのソーシャルアプリを自らの手で、手軽に作成できます。

Status Update Gadget は OpenSocial Pages でここまでできる(まだまだできる)... そのことを証明するための実例です。

Login
OpenSocial Pages は Google Apps の認証を求めます。OpenSocial Pages は Google Apps と連携することで、OpenSocial Gadget (=ソーシャルアプリ) が Google Apps ドメインのユーザとグループをソーシャルグラフとして扱うことができる仕組みとなっています。
Home
Status Update Gadget の Home View です。Viewer と Viewer がフォローしたユーザのアクティビティをタイムラインで表示します。新着の Status があればライムラインにリアルタイム(ポーリング)で表示します。テキストを入力して Share ボタンをクリックすると、アクティビティを送信します。
アクティビティ中のユーザを表す @ と URL を表す http(s):// は、プログラムが解釈して、リンクを自動的に生成します。View のアクティビティは Delete リンクで削除でき、それ以外のアクティビティは Reply リンクで返信できます。

OpenSocial Pages は Viewer の Friends を Following と位置付けます。そのため、フォローしたユーザのアクティビティは、次のように Activities API を使って取得します。
osapi.activities.get({ userId: '@viewer', groupId: '@friends'})
Mentions
Status Update Gadget の Mentions View です。Google Apps ドメインの全ユーザからの返信(または言及)のあったアクティビティをタイムラインで表示します。
OpenSocial Pages は、返信(または言及)を表す取得範囲を定義しています。そのため、Viewer に返信(または言及)したアクティビティは、次のように Activities API を使って取得します。
osapi.activities.get({ userId: '@viewer', groupId: '@mentions' })
Profile
Status Update Gadget の Profile View です。指定したユーザのアクティビティをタイムラインで表示します。Follow ボタン(または Unfollow ボタン)をクリックすると、そのユーザをフォロー(または解除)できます。

OpenSocial Pages は Viewer の Friends を Following と位置付けます。そのため、ユーザをフォロー(または解除)するときは、次のように Peopel API を使います。
osapi.people.create({ userId: '@viewer', groupId: '@friends', person: { id: user.id } })
osapi.people.delete({ userId: '@viewer', groupId: '@friends', person: { id: user.id } })
Following
Status Update Gadget の Following View です。指定したユーザがフォローしているユーザを表示します。このとき、各ユーザの最新のアクティビティも合わせて表示します。
OpenSocial Pages は Viewer の Friends を Following と位置付けます。そのため、指定したユーザをフォローしているユーザは、次のように Peopel API を使って取得します。
osapi.people.get({ userId: user.id, groupId: '@friends' })
Groups
Status Update Gadget は、各 View のヘッダで、Group の選択ボックスを表示し、Groups View に移動するようにしています。
OpenSocial Pages は Google Apps のドメインを Owner、そのグループを Owner の Group に位置付けます。そのため、Google Apps ドメインのグループは、次のように Groups API を使って取得します。
osapi.groups.get({ userId: '@owner' })
Domain
Status Update Gadget の Groups View です。Google Apps ドメインの全ユーザのアクティビティをタイムラインで表示します。
OpenSocial Pages は Google Apps のドメインを Owner、そのユーザを Owner の Friends に位置付けます。そのため、Google Apps ドメインの全ユーザのアクティビティは、次のように Activities API を使って取得します。
osapi.activities.get({ userId: '@owner', groupId: '@friends'})
Domain Members
Status Update Gadget の Members View です。Google Apps ドメインの全ユーザを表示します。このとき、このとき、各ユーザの最新のアクティビティを表示します。また、各ユーザをフォローしているかどうかも合わせて表示します。

OpenSocial Pages は Google Apps のドメインを Owner、そのユーザを Owner の Friends に位置付けます。そのため、Google Apps ドメインの全ユーザは、次のように People API を使って取得します。 
osapi.people.get({ userId: '@owner', groupId: '@friends' })
Group
Status Update Gadget の Groups View です。選択したグループに参加するユーザのアクティビティをタイムラインで表示します。
OpenSocial Pages は Google Apps のドメインを Owner、そのグループを Owner の Group に位置付けます。そのため、指定したグループのアクティビティを取得するときは、Activities API に対して、次の取得範囲を指定します。
osapi.activities.get({ userId: '@owner', groupId: group.id })
Group Members
Status Update Gadget の Members View です。選択したグループに参加するユーザを表示します。このとき、各ユーザの最新のアクティビティを表示します。また、各ユーザをフォローしているかどうかも合わせて表示します。
OpenSocial Pages は Google Apps のドメインを Owner、そのユーザを Owner の Friends に位置付けます。そのため、そのため、指定したグループのユーザを取得するときは、People API に対して、次の取得範囲を指定します。
osapi.people.get({ userId: '@owner', groupId: group.id })
 OpenSocial Pages は Google Apps (スタンダードも可) をお持ちであれば、何も準備することなしにすぐ使い始めることができます。この機会にぜひお試しください。また OpenSocial Pages の応用にご関心がございましたら Nobuhiro Nakajima までお問い合わせください。熱烈サポートいたします。

2010-07-07

Status Update アプリとスマートフォンから見る OpenSocial Pages の意義、欠点と課題

こんにちは。Nobuhiro Nakajima です。

OpenSocial Pages 向けの Status Update アプリ (サンプル) をアップデートしました。このアプリは 今どんな仕事をしているか? Twitter のようなタイムラインで共有しようというものです。

先日ご紹介した Tweet アプリ (サンプル) は jQTouch を使用した iPhone 専用のアプリでしたが、Status Update アプリは、PC も含めて iPhone、iPad、Android などのスマートフォンでも動作するようにしました。

Status Update アプリ (サンプル) のガジェットXML は、次のサイトから入手できます。status-update.r146.xml をダウンロードしてください。

OpenSocial Pages Downloads
http://sites.google.com/a/lrlab.to/opensocial-pages/downloads

また OpenSocial Pages for Google Apps をインストールすると、既定のガジェット (=ページ) として追加するようにしました。OpenSocial Pages を Google Apps にインストールするときは、次のボタンをクリックしてください。

Status Update アプリが、各種スマートフォンでどう動くのかスクリーンキャプチャをとりました。


OpenSocial Pages は、他のコンシューマ向け SNS とは異なり、アプリを iframe を使わず、ウェブページとして表示して動かします。つまり、従来のウェブページを OpenSocial アプリとして作成できるということです。

そのため、スクリーンキャプチャのように PC も含めて、iPhone、iPad、Android などのモバイルブラウザでも OpenSocial アプリを快適に動作させることができます。

ただし、モバイルブラウザという性質上、残念ながら今のところ Flash は使えません。が、OpenSocial Pages は、HTML5 でウェブページをレンダリングするようにしていますので、HTML5 のテクノロジを使ったリッチアプリを動作させることはできます。

また、Android は Flash のサポートを表明していますので、近い将来 OpenSocial Pages + Android で Flash ベースの OpenSocial アプリを動作させることもできるようになります。

Status Update アプリは、今どんな仕事をしているか、Twitter でいうところの "つぶやき" を Google Apps ドメインのユーザ間で共有できる アプリです。その "つぶやき" が、他のドメインや公のユーザに公開されることはありません。

OpenSocial Pages は Google Apps のユーザとグループをインポートして、必要に応じて同期できます。つまり、OpenSocial Pages を Google Apps にインストールすると、Google Apps の既存ユーザとグループをソーシャルグラフとして、Google Apps に閉じた OpenSocial アプリを動作させることができるということです。

Status Update アプリは、とても小さく単純なもの(OpenSocial と JavaScript の知識があれば誰でも作れる)ですが、これら OpenSocial Pages の特徴によって、役立つものとなります。

例えば、スマートフォンの特徴と HTML5 の特徴を活かして、"つぶやき" に位置情報を付与するようにして、今どこでどんな仕事をしているか、お互いに共有できるアプリに改善することもできるでしょう。

OpenSocial Pages を使うには OpenSocial と JavaScript の知識が必要で、ウェブ開発者がいないと使えないという欠点があり、大きな問題であると課題として認識しています。

現状は、ウェブ開発者がいて、自らアプリを開発して、仕事の役に立ててもらうというスコープですが、将来は Google Friend Connect Social Gadgets や Facebook Widget、Twitter @anywhere くらいの感覚で利用できるようになればと考えています。

2010-07-02

Google Apps Marketplace で OpenSocial Pages をぽちっと Google Apps にダイレクトインストールできるようにしました

こんにちは。Nobuhiro Nakajima です。

OpenSocial Pages を Google Apps MarketPlace からぽちっと Google Apps にダイレクトインストールできるようにしてみました。

このエントリでは Google Apps MarketPlace から Google Apps に OpenSocial Pages に登録する流れを紹介します。Google Apps MarketPlace の掲載手順や Google Apps との連携方法など、具体的な話題は、別途エントリで紹介します。

OpenSocial Pages がどんなものか知りたい方は、次の紹介エントリをご覧ください。

* OpenSocial Pages という新しい取り組みの紹介です
* OpenSocial Pages はソーシャルデータ駆動による Social Gadget の消費スタイルを提案するものです

Google Apps MarketPlace は Google が運営するサイトで、サードパーティのベンダが、全世界の Google ユーザに、ビジネス向けの製品やサービスを紹介する場となっています。

Google Apps Marketplace
https://www.google.com/enterprise/marketplace/
The Google Apps Marketplace offers products and services designed for Google users, including installable apps that integrate directly with Google Apps. Installable apps are easy to use because they include single sign-on, Google's universal navigation, and some even include features that integrate with your domain's data.


OpenSocial Pages は、次のとおり Google Apps > Productivity カテゴリに掲載されています。



Google Apps MarketPlace では、ベンダのプロフィールを掲載できます。Nakajiman Software のプロフィールは、次のとおりです。ベンダの基本情報と製品リストを掲載できます。

Vendor Profile: Nakajiman Software Inc.



製品ごとのプロフィールも掲載できます。OpenSocial Pages のプロフィールは、次のとおりです。

OpenSocial Pages for Google Apps



Google Apps MarketPlace は製品の紹介にとどまらず、Single Sign-On (SSO) に対応した製品であれば、Google Apps MarketPlace からその製品を Google Apps に直接インストールできる仕組みを備えています。

OpenSocial Pages も直接インストールできるようにしています。OpenSocial Pages のインストールはとても簡単です。OpenSocial Pages のプロフィールから Add it now ボタンをクリックします。そして、インストール先の Google Apps ドメインを入力して Go ボタンをクリックします。



すると、Google Apps Dashboard に遷移し、OpenSocial Pages の利用規約への同意を求められます。このとき Terms of Service が OpenSocial Pages の利用規約にリンクされています。



利用規約に同意すると、インストールする製品から Google Apps にアクセスする内容を表示し、認可するか求められます。OpenSocial Pages は Google Apps の Uesr と Group をインポートするため、User と Group へのアクセス (Read Only) を求めています。



アクセスを認可して Enable app now ボタンをクリックすると、Google Apps で OpenSocial Pages が使えるようになります。



インストールすると、Google Apps に OpenSocial Pages のリンクが追加されます。



インストールすると、Gmail などのナビゲーションに OpenSocial Pages のリンクが追加されます。



OpenSocial Pages は Google Apps Dashboard から、いつでもアンインストールできます。また、状況に応じて、無効にしたり、アクセスの認可を取り下げることもできます。



OpenSocial Pages にアクセスすると、Google Apps アカウントによるログインを求められます。



OpenSocial Pages にログインすると、既定のページ(=ガジェット)がされます。このページは OpenSocial の People API を使って、ログインユーザの名前を表示するようにしてあります。この名前は Google Apps アカウントからインポートしたものです。



OpenSocial Pages のコントロールパネルにアクセスして、初期のセットアップをします。



あとは OpenSocial Apps や Social Gadgets を開発するノリでページを編集していきます。

Google Apps MarketPlace での露出は、ユーザレビューと評価による基準しかないようです。もしも関心がありましたら OpenSocial Pages をお試しいただき、マイナス面でも構いませんので、レビューや評価を頂けますと幸いです。