ブログを書いたら自動的に記事をツイートできれば!ってみんな思うよね? だからそういうサービスやツールはいっぱいあります。 WordPressのJetpackでもできるしね。 でももっと自由になりたい。そんな人はGAS(Google Apps Script)を使えばいいと思うんだ。 だから、定期的にブログのRSSを見て新着があったらツイートしてくれる。それをGASでやってみました。 あ、この記事はJavaScriptを書いたことがある人向けの記事です。記事の下の方にサンプルを置いてるので、記事を見ながら挑戦してみても。

GAS(Google Apps Script)って?

サクっと説明すると、Googleが提供するサーバーサイドスクリプトで、Googleの様々なサービスを操作できる便利なヤツ。 JavaScriptに毛が生えたような構文で、ドライブのスプレットシートやドキュメント、フォームはもちろん、gmailやGoogle マップ、AnalyticsやAdsenseまで操作できるのです。 そしてそのスクリプトはGoogleドライブ上で書いて動かせるんです。超便利。

とりあえずRSSを読みこむヤツをつくってみよう

手順としてはこんな感じ
  1. 指定されたフィードURL(xml)を読み込む
  2. 中身を取り出して記事タイトルとURLをログに吐く
じゃあ実際につくって動かしてみよう。

ドライブでスクリプトを動かす準備

Googleドライブには登録している前提で、まずドライブでスクリプト<空のプロジェクト>をつくる。
スクリプト<空のプロジェクト>を作成
スクリプトをつくる 空のプロジェクト
これでスクリプトを動かす準備ができた。このプロジェクトに色々書いていきます。

RSSを取得するスクリプトをつくって動かしてみる

コードをつくる

RSSフィードを読み込むコードを書きます。

※2015/3/1 追記 GASのアップデートに伴い、この「フィードを読み込むサンプルコード」が動かなくなっています。こちらの記事を参考に修正してください。

function autoTweet() {
  // フィードのURL
  var feedURL = "http://unguis.cre8or.jp/feed";
  // フィードを取得
  var response = UrlFetchApp.fetch(feedURL);
  // XMLをパース
  var xml = Xml.parse(response.getContentText(), false);
  // 各記事の要素を取得
  var items = xml.getElement().getElement("channel").getElements("item");
  // 取得した記事データをループさせる
  for(var i = 0; i < items.length; i++) {
    // 記事のタイトル
    var title = items[i].getElement("title").getText();
    // 記事URL
    var url = items[i].getElement("link").getText();
    // テキストをつくる
    var text = title + ' ' + url;
    // ログに吐く
    Logger.log(text);
  }
}
フィードのURLを変更して先ほどつくった空のプロジェクトにコピペします。

実行してみる。

上にある実行ボタンをクリック
上にある実行ボタンをクリック
実行前に保存してないと怒られる。
実行前に保存してないと怒られる。
適当なプロジェクト名をつけて保存すればGASの怒りは収まります。
適当なプロジェクト名をつけて保存すればGASの怒りは収まります。
動いていい?と聞かれるので「いいよ。」と
承認します。 アカウント承認
保存ができたらもう一度実行。
保存ができたらもう一度実行。
RSSを読むだけなので数秒もかからないはず。
ログを確認してみましょう。
上部メニューか、 Shift + Enter でログを見る ログがあれば成功。
RSSフィードから記事のタイトルが取得できました。 もし、うまく動かない時はRSSフィードの構造が違うのかもしれないので適切変更してください。 次のページではツイートするスクリプトをつくります。