変数 = UrlFetchApp.addOAuthService( サービス名 );まず、UrlFetchにOAuthサービスを追加し、その設定情報を管理するOAuthConfigを取得します。引数にはサービスの名前を指定しておきます。
《OAuthConfig》.setAccessTokenUrl( アクセストークンURL );これが一番、ややこしいところです。OAuthによる認証を行うには、3つのURLと2つの固定値が必要となります。URLは、アクセストークン、リクエストトークン、認証のそれぞれを行うアドレスです。またOAuthが各アプリケーションごとに発行するコンシューマキーとコンシューマシークレットも必要となります。
《OAuthConfig》.setRequestTokenUrl( リクエストトークンURL );
《OAuthConfig》.setAuthorizationUrl( 認証URL );
《OAuthConfig》.setConsumerKey( コンシューマキー );
《OAuthConfig》.setConsumerSecret( コンシューマシークレット );
変数 = {その他、接続時に必要となる情報を連想配列にまとめておきます。oAuthServiceNameは、サービス名を指定します。oAuthUseTokenはトークン使用に関するポリシー設定で、"always", "if_available", "never", "require_present"のいずれかを指定します。常に利用するなら"always"でいいでしょう。
oAuthServiceName : サービス名 ,
oAuthUseToken : トークンの利用
};
変数 = UrlFetchApp.fetch( アドレス, オプション );最後に、UrlFetchApp.fetchでアクセスを行います。第2引数には、3で用意した連想配列を渡します。これで、諸設定が正しくされていれば、OAuthによる認証を許可するための表示が現れるはずです(Twitterなら、別ウインドウでアプリケーションの利用を許可するか尋ねてくる)。これでOAuth認証を許可すれば、指定アドレスにアクセスしデータを取得することができます。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
function getTwitter(){ var url = "http://api.twitter.com/oauth/"; var auth = UrlFetchApp.addOAuthService("twitter"); auth.setAccessTokenUrl(url + "access_token"); auth.setRequestTokenUrl(url + "request_token"); auth.setAuthorizationUrl(url + "authorize"); auth.setConsumerKey("…コンシューマキー…"); auth.setConsumerSecret("…コンシューマシークレット…"); var options = { oAuthServiceName : "twitter", oAuthUseToken : "always" }; var result = UrlFetchApp.fetch("http://api.twitter.com/1/statuses/user_timeline.json", options); var content = result.getContentText(); var obj = Utilities.jsonParse(content); var sheet = SpreadsheetApp.getActiveSheet(); var num = 1; var fields = ['created_at','text','in_reply_to_screen_name']; for (var i in obj) { var row = obj[i]; var col = 1; for (var j in fields) { var key = fields[j]; sheet.getRange(num, col).setValue(row[key]); col++; } num++; } }
<< 前へ |