OpenSocial Pages for Google Apps で osapi.http API を使えるようにしました。
osapi.http は gadgets.io.makeRequest メソッドに相当するものです。さらに osapi.http は、バッチリクエストにも対応するため、gadgets.io.makeRequest メソッド以上のメリットがあります。
- 1回の API 呼び出しで、複数の外部サーバにまとめてリクエストできます
- 1回の API 呼び出しで、SNS のデータと外部サーバのデータをまとめてリクエストできます
function init() {
var batch = new osapi.newBatch()
.add('viewer', osapi.people.getViewer())
.add('videos', osapi.http.get({
href: 'http://gdata.youtube.com/feeds/api/users/nakajiman1/uploads?alt=json',
format: 'json'
}));
batch.execute(function(r) {
gadgets.log(r.viewer.displayName); // Nobuhiro Nakajima
gadgets.log(r.videos.status); // 200
gadgets.log(r.videos.content); // Object { version="1.0", more... }
});
}
gadgets.setLogLevel(gadgets.log.INFO);
gadgets.util.registerOnLoadHandler(init);
従来は Viewer のプロフィール情報は opensocial.newFetchPersonRequest メソッドと gadgets.io.makeRequest メソッドを別々に呼び出して、非同期のコールバックのタイミングを制御して、レスポンスをまとめる必要がありました。が、osapi.http を使えばそんな必要はなく、Gadgets(=Apps) のソースコードをシンプルにより分かりやすく記述することができます。
OpenSocial Pages がサポートする osapi.http のオプションやフィールドは、OpenSocial Pages ドキュメントの Core Gadgte Spec と Core Data Spec に記載しておきました。
0 件のコメント:
コメントを投稿