Google Apps Script の UrlFetch Services は 2Legged OAuth に対応してないっぽいので自前でやってみた。ちなみに 3Legged OAuth は標準でできるみたいです。
はじめに JavaScript の OAuth ライブラリ の内sha1.js と
以下の例では、Google Friend Connect の People API を呼び出して、Viewer (xoauth_requestor_id) のプロフィールを取得して、ニックネームを表示しています。
function myFunction() {
var action = 'http://www.google.com/friendconnect/api/people/@me/@self';
var accessor = { consumerSecret: '{consumerSecret}' };
var message = { method: 'GET', action: action, parameters: {}, };
OAuth.setParameter(message, 'oauth_consumer_key', '{oauth_consumer_key}');
OAuth.setParameter(message, 'oauth_version', '1.0');
OAuth.setParameter(message, 'oauth_timestamp', OAuth.timestamp());
OAuth.setParameter(message, 'oauth_nonce', OAuth.nonce(6));
OAuth.setParameter(message, 'xoauth_requestor_id', '18200614986198926446');
OAuth.SignatureMethod.sign(message, accessor);
var url = OAuth.addToURL(action, message.parameters);
var response = UrlFetchApp.fetch(url, {method: message.method });
if (response.getResponseCode() == 200) {
var res = JSON.parse(response.getContentText());
Browser.msgBox(res.entry.displayName);
}
}
今回は Query String で試しましたが Authorization Header でも大丈夫なはず。ということで Google Apps Script から 2Legged OAuth できちゃいました。
0 件のコメント:
コメントを投稿