/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

GoogleAppsScriptでRSSデータをスプレッドシートに保存する(SNSシェア数付)

f:id:yatta47:20210221101900p:plain

みなさん、普段の情報収集はどんな感じでやられていますかね?

自分の場合ははてなブックマークRSSから情報をメインに収集しています。

今まではAWS LambdaでRSSを読み取って、slackに通知するようにしていましたが、nodeのバージョンが古くなって作り直す必要が出てきたのでこれを機にただポーティングするんではなくて、"違う手法"そして"追加情報"を付加しようと思ってGoogleAppsScriptでやってみようと思い作り直しました。

 

やりたいこと(というかやらなきゃいけないこと)

やりたいことを順番に書くと・・・・

  1. GoogleAppsScriptでRSSを読み取ってスプレッドシートに書き出す
  2. SNSのシェア数をカウントして、スプレッドシートに追加
  3. Slackにそのデータを投稿する

です。

今回の記事では上記の「1. GoogleAppsScriptでRSSを読み取ってスプレッドシートに書き出す」「2. SNSのシェア数をカウントして、スプレッドシートに追加」が出来上がります。  

完成形

完成形はこんな感じ。

f:id:yatta47:20170520130924p:plain

データについてはモザイクかけていますww

 

特定のRSS(自分の場合は http://b.hatena.ne.jp/hotentry/it.rss )を読み込ませてスプレッドシートに表示して、別の列にはてブ数とTwitterのシェア数とPocketのシェア数を表示しています。

 

やり方

やり方を細かく書いたほうがいいとも思ったのですが、自分で書くよりもものすごく綺麗に記事にしている方がいらっしゃるのでそちらのサイトを参考にしたほうがいいと思います。。

https://crowdworks.jp/lp/mm/zaitaku/ochi4510/make-snsdashboard

ちなみに自分もこのサイトを超絶参考にして、実際そのままやりました。

変更したのはスプレッドシートのIDぐらいです。

 

勉強になった内容

地味に知らなかったのが、スプレッドシートには以下の複数種類があるということ。

  • Container Bound Script
  • Standalone Script

Container Bound Scriptはスプレッドシートとかのメニューからスクリプトエディタを起動して作成するスクリプトのこと。

Standalone ScriptはGoogle Drive上に直接つくるスクリプトのこと。

スプレッドシートと連携したいので、今回は「Container Bound Script」で作りました。

 

各Scriptの違い(比較)は以下のサイトで綺麗にまとめられています。

Google Apps Scriptの開発手法まとめ - Qiita

 

まとめ

自分のやりたいことが予想以上に簡単にできたっていう印象です。

GoogleAppsScript上でやれる=自分でサーバ管理しなくていいというメリットがあるので、普段のGoogleAnalyticsの結果を収集したりするのにも使って非常に重宝しています。

Microサービスをいっぱい作ってつなげる形で使うのは、最近みるケースも増えてきたし、サーバレス・・・便利だなぁ。

いや・・・便利っていうか、安心って感じかな。

 

これでスプレッドシートに現在のRSS情報+SNSシェア数を書き出すことができたので、今後はこれにSlackに投稿する処理を追加しようと思います。

 

参考サイト

https://crowdworks.jp/lp/mm/zaitaku/ochi4510/make-snsdashboard

Google Apps Scriptの開発手法まとめ - Qiita