最速!Google Wave API解説

第1回 ガジェットAPI

この記事を読むのに必要な時間:およそ 2 分

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を開きます。

図1 New Waveボタン

図1 New Waveボタン

画面右上の,ユーザー名の隣にある「Debug」ボタンを押下します。

図2 Debugボタン

図2 Debugボタン

メニューから「Add Gadget」を選択すると「Gadget gallery」が開きます。

図3 Debugメニュー

図3 Debugメニュー

図4 Gadget galleryダイアログ

図4 Gadget galleryダイアログ

Gadget galleryの一番下にある「URL of gadget module XML」テキストフィールドにガジェットXMLのURIを入力し,「Add by XML」ボタンを押下すると,先ほど作成したWaveに指定したガジェットが挿入されます。

図5 挿入されたガジェット

図5 挿入されたガジェット

挿入されたガジェットに先ほどXMLで指定した Hello, Wave! が表示されていることを確認してください。

著者プロフィール

あんどうやすし

シーサー株式会社 プログラマ。Google App Engine API Expert。

Google I/O翌日にGoogleオフィスで開かれたWave Hackathonに潜り込んできました。そこで得られた知識を,記憶が温かいうちにみなさんと共有できればと思います。

URLhttp://d.hatena.ne.jp/technohippy/

Wave ID:technohippy@wavesandbox.com

コメント

コメントの記入