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 件のコメント:
コメントを投稿