Google Apps Script 勉強会 #1行ってきた
のスクリプトをコピーして作ったのが、
ツイッターであるユーザがフォローしている人の一覧をスプレッドに出すというもの。
ユーザのフォロー数と、フォロワー数もついでに出力します。
という、アプリのバグなのか、Twitter APIのバグなのか、
pageパラメータが無視され、1ページ目しか取れないという、良く分からない事象に遭遇し、
(たぶん)最近フォローした、100人だけ出るようになってます。
ツイッターであるユーザがフォローしている人の一覧をスプレッドに出すというもの。
ユーザのフォロー数と、フォロワー数もついでに出力します。
が、
URL をたたいても、1ページ目しか取れないのはなぜなのだろう。。
pageパラメータが無視され、1ページ目しか取れないという、良く分からない事象に遭遇し、
(たぶん)最近フォローした、100人だけ出るようになってます。
ソース
function test() { // スクリーン名を入力 var inScreenName = Browser.inputBox("スクリーン名を入力してください。"); if(!inScreenName) { return; } for(var page=1; page<=2; page++) { var url = "http://api.twitter.com/1/statuses/friends/" + inScreenName + ".json?page=" + page; // TwitterからFriendsの情報を取得 var response = UrlFetchApp.fetch(encodeURI(url), getOptions_()); var status = Utilities.jsonParse(response.getContentText()); // スプレッドシートへの書き込み準備 var range= SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1, 1); for(var i=0; i<status.length; i++) { var anStatus = status[i]; var screenName = anStatus["screen_name"]; var friendsCount = anStatus["friends_count"]; var followersCount = anStatus["followers_count"]; range.offset(i+1+(100*(page-1)), 0).setValue(screenName); range.offset(i+1+(100*(page-1)), 1).setValue(friendsCount); range.offset(i+1+(100*(page-1)), 2).setValue(followersCount); range.offset(i+1+(100*(page-1)), 3).setValue("http://twitter.com/#!/" + screenName); } } } /** * UrlFetch用のオプションを指定します。 */ function getOptions_() { // スクリプトプロパティを取得 var CONSUMER_KEY = ScriptProperties.getProperty("CONSUMER_KEY"); var CONSUMER_SECRET = ScriptProperties.getProperty("CONSUMER_SECRET"); var oAuthServiceName = "twitter"; // OAuthServiceConfigの設定 var oAuthConfig = UrlFetchApp.addOAuthService(oAuthServiceName); oAuthConfig.setAccessTokenUrl("http://twitter.com/oauth/access_token"); oAuthConfig.setRequestTokenUrl("http://twitter.com/oauth/request_token"); oAuthConfig.setAuthorizationUrl("http://twitter.com/oauth/authorize"); oAuthConfig.setConsumerKey(CONSUMER_KEY); oAuthConfig.setConsumerSecret(CONSUMER_SECRET); // UrlFetchAppに渡すオプションの設定 var options = { "method" : "get", "oAuthServiceName" : oAuthServiceName, "oAuthUseToken" : "always", }; return options; }
動作させるには、スクリプトのプロパティに対して、
CONSUMER_KEYとCONSUMER_SECRETを定義してあげる必要があります。