• wave 情報 検索 得
Embed API
• 自分 wave 組 込
• 組 込 wave ン い
普通 操作
• ン い い人 込 専用 表
示
• う Google Wave 様々 拡張
え う い
• Google Wave 拡張 言う 別
拡張 Google Wave 組 込
組 提供 い 言う思惑 用意
API 感 (気 )
日 内容
• 別 挨拶 う う !
• Google Wave 概要
• Google Wave
• Google Wave
• Embed API
• Google Wave Federation Protocol
•
Wave
• 基 Google
• XML 書
• 中 画面表示用 HTML 埋 込
• HTML 埋 込
XML
HTML
JavaScript
Wave 使い方
• Web wave URL
い 貼 付
XML
(HTML+JavaScript)
Web
Google Wave
wave URL 用い 貼 付
Hello World
<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title=
"hello world example" />
<Content type="html">
<![CDATA[ <b>Hello, world!</b> ]]>
</Content>
</Module>
状態 共有 (Shared State)
• wave 参加者 共有 一 連想配列
• 従 共有 値 Shared State 保
• Shared State 変更 参加者全員
通知 Wave
Shared state
wave参加者 wave参加者 wave参加者
変更 通知
通知
実際
• 値 保
wave.getState().submitDelta({'count': '0'});
• 値 得
wave.getState().get('count')
• 値 変更 通知
wave.setStateCallback(stateUpdated);
投票 作 う
• wave 貼 付 何 内容 い
Good Bad 評価 う
使用 設定
<Module>
<!-- 高 指定 -->
<ModulePrefs title="Counter" height="170">
<!-- 使用 指定 -->
<Require feature="wave" />
</ModulePrefs>
<Content type="html">
Require wave ン ン 利用可能
詳細 次 ン 参照
Google Wave Gadgets API Reference
http://code.google.com/intl/ja/apis/wave/extensions/gadgets/reference.html
投票 画面
• 画面 HTML 普通 作成
• span 箇所 囲
onClick属性 動作
記述
<table>
<tr>
<td>
<span onClick="increment();">
<img src="http://XXX/wave/maru.png">
<span id="valInc" >0</span>
</span>
</td>
<td>
ン onClick
画面 表示 い element.innerHTML
ン押 時 処理 ( ○ ン )
// 評価
function increment(){
// 投票数 ン ン
var value = parseInt(wave.getState()
.get('valInc', '0')) + 1;
// ン ン 値 保
wave.getState().submitDelta({'valInc': value });
}
State 変
状態変 時 画面 更新 関数 録
wave.setStateCallback(stateUpdated);
込 終わ 関数
録 初期 関数 setStateCallback 設定
gadgets.util.registerOnLoadHandler( init );
Wave 貼 付
XML URL 入力
URL 入力 ン 言う 組 用い
wave 貼 付
Wave
• 基 Google Google
可能 Wave 可能
• Google Wave専用 API 追加 い
– 状態保
– Wave状態変 Callback
• XML 作成 中 HTML
JavaScript 記述
Wave う一息
• Shared State
等 Wave 開 制限 多
→ う 思え Wave 用い 大変
• Wave wave 情報
い
日 内容
• 別 挨拶 う う !
• Google Wave 概要
• Google Wave
• Google Wave
• Embed API
• Google Wave Federation Protocol
•
Wave
• wave 操作 対 駆動
• Java Python 記述 GAE
→JSON-RPC Web 動作 何 OK
• GAE [email protected]
• wave 参加者 追加
wave Wave 動作
Java 場合 Wave
• Servlet 実装 い
• HttpServlet 継 AbstractRobot 継 作成
• public void onBlipSubmitted(BlipSubmittedEvent
event) wave 生 ン 毎
あ
• 引数 ン ン ン Blip ン ン
得 返信 投稿 修 行う
実際
public class EchoRobot extends AbstractRobot {
public void onBlipSubmitted(BlipSubmittedEvent event) {
//
// 投稿 処理
//
} }
投稿 返
// 投稿 文 得
String submittedText = event.getBlip().getContent();
// 新 い 返信 作成
Blip newBlip = event.getBlip().reply();
// 新 作 文 設定
newBlip.append("Echo : "+submittedText);
wave 追加
参加者一覧 追加 表示
+ 押 Wave 追加
Active Robot API
• 外部 wave 操作
• 認証 OAuth 利用
• AbstractRobot 継 記述
• ン
new wave操作 び出 可能
wave 作成
public void submitNewWave(){
Set<String> participantsSet = new HashSet<String>();
participantsSet.add("[email protected]");
Wavelet wave = newWave("wavesandbox.com",participantsSet);
wave.reply("¥n い!");
try {
submit(wave, "http://www-opensocial-sandbox.googleusercontent.com/api/rpc");
} catch (IOException e) { }
}
Wave び出
public static void main( String[] args ){
MyTestRobot robot = new MyTestRobot();
robot.submitNewWave();
}
とても簡単!
既 wave 得 変更
WaveId waveId = new WaveId("wavesandbox.com","w+oDuwl6tIe");
WaveletId waveletId = new WaveletId("wavesandbox.com", "conv+root");
Wavelet fetchedWavelet =
fetchWavelet(waveId, waveletId, rpcServerUrl);
Wavelet 得 後 い 通
Wave
• Java Python 作成 GAE
• 操作 生 ン 駆動
• ActiveRobotAPI 用い Wave外 wave 操作
Wave う一息
• Version2 出 API
API 実装 多
• Version2 大分良
時 遅
日 内容
• 別 挨拶 う う !
• Google Wave 概要
• Google Wave
• Google Wave
• Embed API
• Google Wave Federation Protocol
•
Embed API
• 任意 Web wave 組 込
API
• Google Wave 録 い い人 組
込 wave 閲覧 編集 様子 見
Web
Wave Client Wave
Embed API 用い wave 組 込 (1)
• 使用 準備
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
google.load("wave", "1");
•初期
var waveFrame = document.getElementById("waveframe");
var embedOptions = { target: waveFrame }
var wavePanel = new google.wave.WavePanel(embedOptions);
wavePanel.loadWave("googlewave.com!w+Ism0RMW_A")
Embed API 用い wave 組 込 (2)
• 表示 場所
<div id="waveframe" style="width: 500px;
height: 100%"></div>
Google Wave API 日 語
情報 古 い 注意
Embed API 用い wave 組 込 ( 3 )
• 組 込 次 う 表示
Embed API う一息
• 機能 ン 貼 付
い い
• wave 一覧 表示等 機能 欲
(あ 検索結果一覧 )
Embed API 意義
• 機能 い Google Google Wave API 使 開 者 欲 い 一番象徴
い API ( 思う)
• Google Wave API Google Wave 拡張
API Google Wave
機能 組 込 拡張 API ( 思う)
日 内容
• 別 挨拶 う う !
• Google Wave 概要
• Google Wave
• Google Wave
• Embed API
• Google Wave Federation Protocol
•
Google Wave Federation Protocol
• Wave 一 動作
誰 自由 立 連携
• Google Wave Federation Protocol Over XMPP
XMPP 用い 送 信
• Google Wave Federation Protocol Wave 同
士 連携 あ
→結局通常 Google Wave Federation
!
Wave 構成
クライアント Waveサーバ
ロボット (GAE) ロボット
(GAE) ロボット (GAE以外)
Waveサーバ
Waveサーバ
Federation Protocol
C/S
Robot Wire Protocol