Wave Embed API

Google WaveをHTMLに埋め込むための仕組み
少し専門的な内容になります

注意事項

public waveはpreviewということもあり、ロボットがばっこしてカオスになっています。
埋込専用のつもりでも、検索結果からユーザーが集まってくるので注意したいです。
一度は、with:public で雰囲気を味わっておきましょう。

あと頻繁にセキュリティー問題が発生するFlashは無効にした方が安全です。

Publicでフルアクセスにすると誰でもユーザー削除できたり書き換えたりするので注意します。
具体的な対策としては、New Waveを作ったら、編集されてくない記事を作って、1つblipを追加して最後にprivate replyを作ります。
Waveの方は、read onlyに、private replyはfullaccessにすると、被害は最小になります。




Wave Embed Gadgetを作成する

Google Siteなどに埋め込む場合は、Gadgetと呼ばれるGoogleのHTML埋込形式にする必要があります。

私が使ってるGadgetです。IEエラーに未対応なので、IE時のメッセージを自分で出すようにしています。
(IE気にしないなら、Google Web ElemetnsページでWaveのURL入れるだけで簡単にスクリプト作れます)

自分のWaveに変更する場合は、rootUrlとloadWaveの所のWaveIDを変更します。

WaveGadget.xml

<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="WaveGadget" height="600px"/>
<Content type="html">
<![CDATA[
<div id="iewarn">
<script type="text/javascript">
myAgent = navigator.userAgent; 
    if( myAgent.indexOf("MSIE",0)!=-1){
    
     document.writeln("<br/><div style='border: medium solid #cccccc;padding:10px'>お使いのブラウザーではGoogle Wave Embededは表示できません。<br/><br/>\n ChromeあるいはFirefox又はSafariブラウザーで御覧下さい</div>");
    }
</script>
</div>
<div id="waveFrame" style="width:500px;height:600px"></div>

<br/>
<script src="http://www.google.com/jsapi">" type="text/javascript"></script>
<script type="text/javascript">
google.load("wave", "1");

    function initialize() {
    
    var embedOptions = {
   target: waveFrame,
   rootUrl: 'http://wave.google.com/a/wavesandbox.com/'
}
      var wavePanel =  new google.wave.WavePanel(embedOptions);
      wavePanel.loadWave('wavesandbox.com!w+isuodwbfA');
      
    }
    
    myAgent = navigator.userAgent; 
    if( myAgent.indexOf("MSIE",0)==-1){
     google.setOnLoadCallback(initialize);
    }
    </script>
    ]]>
</Content>
</Module>

Gadgetのホスト先

ホームページ用のオンラインのスペースががあれば、そこにアップロードします。
ない場合は、少し技術的になりますが、Google App EngineやGoogle Code Hostを使うといいでしょう。
Google Code Hostへのアップロードの仕方は、Google Gadgetページに説明があります。

Comments