一文字ずつTwitterに投稿するGAS(Google Apps Script)を書きました

最近はApps ScriptでTwitterAPI叩いてます。
Apps Scriptはcronっぽいことが簡単にできたりするのでBotも簡単に作れたりします。せっかくなので紹介してみる。

動かし方

Google DocsのSpreadsheetを作成して、スクリプトエディタを開き、
コードをコピペしてtestYukkuriを実行で動きます。

※このときスクリプトエディタのプロパティで、
twitterConsumerKeyとtwitterConsumerSecretを設定しておきます。

ConsumerKeyとConsumerSecretの取得はこちらdev.twitter.comからできます。
アプリケーションの種類: ブラウザアプリケーション
コールバックURL:https://spreadsheets.google.com/macros
標準のアクセスタイプ:Read & Write
他は適当に入力して完了。取得画面は以下のようになります。

コード

JavaScriptとかほとんどわからないのでコードは適当です。

function testYukkuri() {
  postYukkuri("ここにしゃべらせたい言葉");
}

function postYukkuri(text) {
  tweetInitialize();
  var chars = text.split("").reverse();
  for(var i=0;i<chars.length;i++){
    twitterPost(chars[i]+getRandomSpace());
  }
}

function getRandomSpace() {
  var space="";
  for(var i=0;i<Math.random() * 120;i++){
    space += " ";
  }
  return space;
}

function twitterPost(text) {
  // Setup optional parameters to point request at OAuthConfigService.  The "twitter"
  // value matches the argument to "addOAuthService" above.
  var options =
  {
    "oAuthServiceName" : "twitter",
    "oAuthUseToken" : "always",
    "method" : "POST"
  };
  var encodedTweet = encodeURIComponent(text);
  var result = UrlFetchApp.fetch("http://api.twitter.com/1/statuses/update.json?status=" + encodedTweet, options);
  var o  = Utilities.jsonParse(result.getContentText());
  Logger.log(o);
  Logger.log(result.getResponseCode());
}

function tweetInitialize() {
  // Setup OAuthServiceConfig
  var oAuthConfig = UrlFetchApp.addOAuthService("twitter");
  oAuthConfig.setAccessTokenUrl("http://api.twitter.com/oauth/access_token");
  oAuthConfig.setRequestTokenUrl("http://api.twitter.com/oauth/request_token");
  oAuthConfig.setAuthorizationUrl("http://api.twitter.com/oauth/authorize");
  oAuthConfig.setConsumerKey(ScriptProperties.getProperty("twitterConsumerKey"));
  oAuthConfig.setConsumerSecret(ScriptProperties.getProperty("twitterConsumerSecret"));
}