ぷらっとオンライン での「Twitter フォローで本をもらおう」という懸賞に応募してたのですが、みごとに当選しました。その賞品の本は 『Small Form Factor PCs』 です。

A Portable, USB-Powered, Bridging Firewall 章の中で、OpenBlockS が取り上げられています。

ありがとうございました。またこんな懸賞企画をお願いします。
JavaScript をこよなく愛する なかじまんソフトウェア株式会社 のスタッフによるブログです。
OpenSocial Container や Social Gadgets の開発を技術面から支援します。


<Optional feature="content-rewrite">
<Param name="exclude-urls">\.js$</Param>
</Optional>
Activities APIにおいては、残念ながらOpenSocial 0.8.1においてもページングが考慮されていませんでした。JavaScript APIに関しては、Activityのページングに関する条件を指定するために、ActivityRequestFieldsクラスが新規に定義されます。iGoogle サンドボックスは、次のとおり opensocial.DataRequest.ActivityRequestFields を定義しているようです。
opensocial.DataRequest.ActivityRequestFields.APP_ID
opensocial.DataRequest.ActivityRequestFields.FIRST
opensocial.DataRequest.ActivityRequestFields.MAX
  $.ajax({
    url: 'http://example.com/data.json',
    dataType: 'json',
    oauth: 'signed',
    success: function(data, status) {
      console.log(data, status);
    },
    error: function(xhr, status, e) {
      console.info(xhr, status, e);
    }
  });
  $.get('http://example.com/data.json signed', function(data, status) {}, 'json');
  $.getJSON('http://example.com/data.json signed', function(data, status) {});
  $.getScript('http://example.com/data.js signed', function(data, status) {});
  $.getFeed('http://example.com/data.atom signed', function(data, status) {});
  $.ajax({
    type: 'post',
    url: 'http://example.com/data.json',
    data: { comment: 'Say Hello!' },
    dataType: 'json',
    oauth: 'signed',
    success: function(data, status) {
      console.log(data, status);
    },
    error: function(xhr, status, e) {
      console.info(xhr, status, e);
    }
  });
  $.post('http://example.com/data.json signed', { comment: 'Say Hello!' },
    function(data, status) {}, 'json');
  if ($.flash) {
    console.log('Detects Flash Player.');
  }
  console.log('Major version: ' + $.flash.version);
  $('#container').flash('http://example.com/data.swf');
  $('#container').flash('http://example.com/data.swf', {
    width: 50, height: 100
  });
  $('#container').flash('http://example.com/data.swf', {
    width: 50, height: 100,
    flashVars: { comment: 'Say Hello!' }
  });
  $('<span/>')
    .text('Say Hello!')
    .minimessage();

  $('<span/>')
    .text('Say Hello!')
    .minimessage(function() { 
      console.log('Thanks for the message.');
  });
  var message = $.msg('notfound');
<script type="text/javascript">
$('<div class="logs" />')
    .ajaxStart(function() { console.log('ajaxStart'); })
    .ajaxSend(function(xhr, s) { console.log('ajaxSend', xhr, s); })
    .ajaxSuccess(function(xhr, s) { console.log('ajaxSuccess', xhr, s); })
    .ajaxError(function(xhr, s, e) { console.log('ajaxError', xhr, s, e); })
    .ajaxComplete(function(xhr, s) { console.log('ajaxComplete', xhr, s); })
    .ajaxStop(function() { console.log('ajaxStop'); });
</script>
<script type="text/javascript">
$('<div class="indicator" />')
    .ajaxStart(function() { $(this).show(); })
    .ajaxStop(function() { $(this).hide(); });
</script>
POST /html.cgi?
  opensocial_owner_id=101827817145299921798&
  opensocial_viewer_id=101827817145299921798&
  opensocial_app_id=117266110076567083099&
  opensocial_app_url=http%3A%2F%2...&
  xoauth_signature_publickey=pub.1210278512.2713152949996518384.cer&
  oauth_version=1.0&
  oauth_timestamp=1236030428&
  oauth_consumer_key=www.google.com&
  oauth_signature_method=RSA-SHA1&
  oauth_nonce=1236030428258235000&
  oauth_signature=lu4d4RJG0r...
POST /html.cgi?
  opensocial_owner_id=09639488956131736096&
  opensocial_viewer_id=09639488956131736096&
  opensocial_app_id=06583614294079626891&
  opensocial_app_url=http%3A%2F%2...&
  xoauth_signature_publickey=pub.1199819524.-1556113204990931254.cer&
  oauth_version=1.0&
  oauth_timestamp=1236030605&
  oauth_consumer_key=orkut.com&
  oauth_signature_method=RSA-SHA1&
  oauth_nonce=1236030605895106000&
  oauth_signature=qq4SBv1eb%...
POST /html.cgi?
  opensocial_owner_id=300420948&
  opensocial_viewer_id=300420948&
  opensocial_app_id=34059&
  oauth_consumer_key=hi5.com&
  xoauth_signature_publickey=hi5&
  oauth_version=1.0&
  oauth_timestamp=1236030892&
  oauth_signature_method=RSA-SHA1&
  oauth_nonce=12139334427343000&
  oauth_signature=CCqqxWU4%2F...
POST /html.cgi?
 oauth_consumer_key=http%3A%2F%2Fdevelopmentor.lrlab.to%2Fopensocial-jquery%2Ftests%2FjQuery.ajax.signed.xml&
  oauth_nonce=633716278571890020&
  oauth_signature=oBZ%2Fb4ZD...&
  oauth_signature_method=HMAC-SHA1&
  oauth_timestamp=1236031057&
  oauth_version=1.0&
  opensocial_owner_id=1003744688&
  opensocial_viewer_id=1003744688
POST /html.cgi?
  opensocial_owner_id=30gsvga5xejte&
  opensocial_viewer_id=30gsvga5xejte&
  opensocial_app_id=http%3A%2F%2...&
  oauth_consumer_key=opensocialcommunity.ning.com&
  xoauth_signature_publickey=ning.com&
  oauth_signature_method=RSA-SHA1&
  oauth_nonce=214ee1ffdb7af030&oauth_timestamp=1236031902&
  oauth_signature=a1JTBiblvv...
nakajiman iGoogle sandbox で gadgets.io.AuthorizationType.SIGNED とすると、Bad Request になってしまうのですが、何が不足してるんだろう。理解できていません。Orkut や MySpace だとそれぞれの方式で動くのに。agektmr さん、yoichiro さん。ありがとうございました。助かりました。
yoichiro @nakajiman 何かしらコンテナ側にトラブルが起きてることが当たり前のように思えてきますよねー
nakajiman @yoichiro iGoogle sandbox がトラブッテる可能性が高いってことですか? SIGNED とすると、iGoogle コンテナ署名のリクエストになるという理解は正しいのかな。もう少し時間をおいてから試してみよう。
agektmr @nakajiman @yoichiro 僕の所では動いてるので、公開鍵が間違ってるとかじゃないですかね
agektmr @nakajiman opensocial-0.8をRequireしたら動きました。iGoogleではopensocialをRequireしないとstが付かないぽいですね。
nakajiman@agektmr ありがとうございます!リクエストきました。oauth_consumer_key=www.google.com ちょっとしたTipsですね。