最速!Google Wave API解説
第1回 ガジェットAPI
2009年5月28日,Googleのデベロッパーカンファレンス「Google I/O 2009」のキーノートにおいて大々的に発表されたGoogle Waveは,聴衆に熱狂を持って迎えられました。そのキーノートにおいてスピーカーは「Google WaveはProductであり,Platformであり,Protocolだ」と述べました(編注)。
本連載ではその3つのPの内の2つ目,PlatformとしてのGoogle Waveについて説明します。
- 編注
- 著者執筆のGoogle I/O 2009のイベントレポート記事も参照ください。
なお,Google Waveは現在も急ピッチで開発が進められているプロダクトであり,本連載に掲載する画面遷移・ソースコードなどは最新ではない可能性があります。記事に沿って作業していて違和感を覚えた場合にはGoogleの公開しているドキュメントを適宜参照してください。
API概観
私たち開発者から見えるPlatformとしてのGoogle Waveは3種類のAPIからなります。
| Robots API | Extensions | Waveを拡張するためのAPI |
|---|---|---|
| Gadgets API | ||
| Wave Embed API | Waveの機能を外部から利用するためのAPI | |
APIごとの違いを大まかに説明すると以下のようになります。
- Robots API
- Waveでの入力をサーバ側で処理をするためのAPI。例:チャットボット(人工無能)
- Gadgets API
- クライアント側でWave内のイベントを処理をするためのAPI。JavaScriptで記述することが多い。例:Google Mapガジェット
- Wave Embed API
- Google Wave以外のサービスにGoogle Waveの機能を組み込むためのAPI
3つのうちRobots APIとGadgets APIはGoogle Wave自体に機能を追加するAPIとしてExtensionsと呼ばれ,Wave Embed APIとは区別されています。
連載第1回目の今回は,上記3つのうちExtensionsに所属するGadgets APIについて説明します。公式ドキュメントではRobots APIが先に説明されていますが,Gadgets APIはGoogle Waveの大きな特徴の一つであるリアルタイム通信を扱うAPIであることと,Robots APIがGadgets APIを操作することもできるAPIであることから,Gadgets APIを先に説明した方がわかりやすいでしょう。
Gadgets API
シンプルなガジェット
ガジェットとはHTML,CSS,JavaScriptなどをXMLで包みiGoogleやOpenSocial等のコンテナに機能を追加するための仕組みで,Google Waveのガジェットも基本的にはiGoogleやOpenSocial等と全く同じです。これは実際にソースコードを見た方が早いでしょう。公式ドキュメントから引用してみます。
リスト1 シンプルなガジェット(公式ドキュメントより引用)
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="Hello Wave">
<Require feature="rpc" />
</ModulePrefs>
<Content type="html">
<![CDATA[
<script type="text/javascript"
src="http://wave-api.appspot.com/public/wave.js"></script>
Hello, Wave!
]]>
</Content>
</Module>
<Require feature="rpc" /> タグでRPCコールの使用を宣言している部分と,<Content>タグ内部でwave.jsスクリプトを読み込んでいる部分が特徴的ですが,このシンプルな例ではiGoogleなどのガジェットと何ら変わるところがないことが理解できるでしょう。
ガジェットの実行
それではガジェットを実際にWave上で実行してみましょう。ガジェットのXMLにはグローバルなURIが必要ですが,本XMLはすでにhttp://gadget-doc-examples.googlecode.com/svn/trunk/wave/hello.xmlに用意されていますので,このURIをそのまま使います。
まずは真ん中のWaveにある「New Wave」ボタンを押下して新規にWaveを開きます。
画面右上の,ユーザー名の隣にある「Debug」ボタンを押下します。
メニューから「Add Gadget」を選択すると「Gadget gallery」が開きます。
Gadget galleryの一番下にある「URL of gadget module XML」テキストフィールドにガジェットXMLのURIを入力し,「Add by XML」ボタンを押下すると,先ほど作成したWaveに指定したガジェットが挿入されます。
挿入されたガジェットに先ほどXMLで指定した Hello, Wave! が表示されていることを確認してください。


