ブラウザで開いたページのタイトルとURLをカレンダーの日付に紐付けたいと思ったので、専用のブックマークを作ることにした。
ifttt のサービスを使って、Google カレンダーに登録する。
Googleカレンダーの言語が「英語」であれば、「Quick Add」の機能が使えることがわかったので、英語に設定。
これで、「タイトルが入る Jan 01, 2020」 のように書くと、その日付にタイトルを登録できる。
ifttt の設定はこちら。
ブラウザから呼ぶブックマークは、javascriptで書いて、iftttになげる。
例:1月1日の場合がこちら
javascript:(function(){ var m = 1; var d = 1; var today = new Date(); var yyyy = today.getFullYear(); var mm = ('0' + m).slice(-2); var dd = ('0' + d).slice(-2); var day = new Date(yyyy,mm,dd,0,0,0); if(day < today){ yyyy+=1; } var mstr = ""; switch(mm){ case "01":mstr = "Jan";break; case "02":mstr = "Feb";break; case "03":mstr = "Mar";break; case "04":mstr = "Apr";break; case "05":mstr = "May";break; case "06":mstr = "Jun";break; case "07":mstr = "Jul";break; case "08":mstr = "Aug";break; case "09":mstr = "Sep";break; case "10":mstr = "Oct";break; case "11":mstr = "Nov";break; case "12":mstr = "Dec";break; } var ymd = mstr + " " + dd + ", " + yyyy; location.href = 'https://???.??/webhook/index.php?event=regist_google_calender&value1=' + encodeURI(document.title) + '&value2=' + encodeURI(document.URL) + '&value3=' + ymd; })();
1月2日の場合は、
var m = 1;
var d = 2;
12月31日の場合は、
var m = 12;
var d = 31;
と設定する。
ブラウザに登録したブックマークをクリックして、
以下のURLにアクセス。
https://???.??/webhook/index.php?event=regist_google_calendervalue1=何ゴト?&value2=https://www.nanigoto.net/&value3=Jan 01, 2020
index.php (レンタルサーバーや、heroku などに置く)
<?php if(!isset($_GET["event"])){ echo "Nothing!"; return; } $event = $_GET["event"]; echo $event; $data = array(); if(isset($_GET["value1"])){ $data["value1"] = $_GET["value1"]; } if(isset($_GET["value2"])){ $data["value2"] = $_GET["value2"]; } if(isset($_GET["value3"])){ $data["value3"] = $_GET["value3"]; } var_dump($data); $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, 'https://maker.ifttt.com/trigger/'.$event.'/with/key/XXXXXXXXXXXXXXXXXXXX'); $result=curl_exec($ch); echo 'RETURN:'.$result; curl_close($ch); ?>
以下のような文字列が返ってくる。
regist_google_calenderarray(3) { ["value1"]=> string(12) "何ゴト?" ["value2"]=> string(25) "https://www.nanigoto.net/" ["value3"]=> string(12) "Jan 01, 2020" } RETURN:Congratulations! You've fired the regist_google_calender event
これで、サイトのURLとタイトルがカレンダーに登録できる。
ブックマーク(Javascript) → サーバー(PHP) → ifttt(webhook) → Googleカレンダー
という流れ。