2014年4月5日土曜日

【Google Apps Script】5. ブログのデータを取得する(XML形式)

今、シリコンバレーにきてまして、Google本社、Facebook本社に訪問しています。かなり刺激を受けてきたので、こちらのプロジェクトの意欲も高まっています。ということで、気分を高める意味も含め、今回はFacebook本社近くのカフェでこのブログを書いています。

そろそろ実践に入ろうと思います。ひとまずこのシリーズはマーケティングに役立つダッシュボードを作るのが目的なので、さまざまなデータを取得してGoogleスプレッドシートに展開することをこなしていこうと思います。

atom形式のブログRSSの最新データを取得し、GoogleスプレッドシートにタイトルとURLを展開します。そして、定期的に指定したメールに送信するというスクリプトを作りました。まずは英語の勉強に使うブログ(http://www.eigowithluke.com/)で練習です。

関数は3つです。
onOpen(e)は、Googleスプレッドシートのメニューに作成した関数を実行できる独自メニューを追加します。これは今後作成するスクリプトでも活用していきますので、いつでもコピペ利用ができるようにしておきます。

parseXml()は、RSSからXMLデータを取得、パースし、指定した属性の値を取り出し、スプレッドシートに展開します。

sendemail()は、スプレッドシートに展開したデータをコピーして、指定したメールアドレスに送信します。

サンプルコードはこちらです。特に編集しないと使えない箇所は1点だけ(宛先メールアドレスだけ指定してください)。そこだけを編集すれば、ご自身のGoogleスプレッドシートのエディターにコピペしてもらえれば使えるはずです。 細かくコメントアウトで解説をつけたので、なるべく解読しやすくしたつもりです。パースできる形式はXMLのみならずJSONでもありますが、JSONは別のサンプルで取り組みたいと思います。

すべてのコードを保存した後(実行する際に一度認証が入ります)は、スプレッドシートを開くたびに、onOpen(e)で指定した独自メニューが表示されます。


メニューのRetrieve Dataを選ぶとデータ取得が行われます(エディターから関数を実行することももちろん可能です)。
UrlFetchAppクラスを使うことで外部データの取得はかなり楽にできます。XmlServiceもアップグレードはかなりできることも増えたのでパースもより便利にできるようになりました。


Send Dataを選ぶとスプレッドシートに展開された部分をコピーして指定したメールアドレスにメッセージとして送信されます。






さて、Google Apps Scriptの便利なことの一つにトリガーを設定することができることです。エディターにあるメニューの「現在のプロジェクトのトリガー」を選ぶと、時間やアクションなどの条件に合致した際に関数を実行させることができます。僕の場合は「データ取得を毎月14日と28日の6-7時の間に実行し、その後7-8時の間に最新のデータをメールに送信する」と指定しています。

普通にRSSリーダー的に使うこともできますが、XMLで公開されている有益な外部データは多いので(API経由で取得するデータもXMLであることが多いです)、Google Apps Scriptでさらに自動化をすることで、マーケティング活動に役立つデータを収集することが可能です。これは今後取り上げていきます。今日の練習はここまで。

0 件のコメント:

コメントを投稿