閑古鳥

オールドプログラマの日記。プログラミングとか病気(透析)の話とか。

日付入りのTweetをいいねしたら自動でカレンダーに追加する(したい)

↑こういうツイートにいいねをしたら、Google Calendarに予定として登録したい。

Google Calendarに予定が登録された

IFTTTTwitterのLike(いいね)をトリガーにできるので、いいねしたら対象ツイートをGoogle App Scriptに投げて、そこからカレンダーに登録するようにしてみた。

Google App ScriptでWebAPIを作成

JavaScript(等)でGoogleの関連サービスをごにょごにょできるやつ。これで日付を含んだTweetを受け取ったらカレンダーに登録するスクリプトを書いてみました。

GASは初めて触るのでよくわかっていないのですが、Google Driveあたりから新規作成→Google App Scriptを選ぶとエディタが表示されるので、そこにdoPost関数を用意してそこにカレンダーに予定を登録する処理を実装します*1。doPostは引数を1つ取り、後述するIFTTTから受け取ったTweet情報を処理します。

スーパー雑なのですが、現状は以下のようなスクリプトにしてます。

Code.gs · GitHub

実装できたらメインメニューのPublish→Deploy as web appを選んで有効化するとURLが発行されるのでメモしておきます。

IFTTTの設定

IFTTTの新規作成でThisをTwitterの「New liked Tweet by you」を、ThatにWebhooksの「Make a web request」を選ぶ。Make a new requestの設定に、リクエストを投げるURLがあるのでここにGASのアドレスを設定します。MethodはPOST、ContentTypeはapplication/json、Bodyに以下のようなJSONを設定します。

{
  "text" : "{{Text}}"
}

これでGASのスクリプトTweetの本文が渡されるようになります。

本文しか渡していないけど、Tweet日時(CreatedAt)も取れるのでこれ使って「本日」の扱いをちゃんとしたいなぁ…。

参考リンク

*1:POSTリクエストを受けた時に呼ばれる関数名がdoPost