generated at
GASを使ってscrapboxの更新をLINEで通知する
scrapboxの更新をGAS+LINEで通知する


scrapboxの更新通知をLINEで受け取りたい人向け
LINEで読みやすいように色々文中に挿入したり削ったりしています。
テキストベースなので改造し易いですね。

LINE NotifyGoogle Apps Script(GAS)を使用します
alert scrapboxの行指定URLを短縮するために、script内でURL Shortener APIというものを使っています。
GASの設定から、それらを有効にしないと動かないので注意してください

scrapNotify.js
// この下の行からコピペ function sendHttpPost(message){ var token = "ここにアクセストークン"; var options = { "method" : "post", "payload" : "message=" + message, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify",options); } function sendtoLINE(message){ sendHttpPost(message); } function doPost(e) { var blob = JSON.parse(e.postData.getDataAsString()); var planetext = blob.attachments[0].text; var title = blob.attachments[0].title; var author_name = blob.attachments[0].author_name; var textwithoutlink = planetext.replace(/<(https?:\/\/[\w\/:%#\$&\?\(\)~\.=\+\-)]*)\|(.*?)>/g,"$2"); var originalURL = blob.attachments[0].title_link; var hr = "--------------------"; var shortenURL = UrlShortener.Url.insert({ longUrl:originalURL }); var message ="\n"+hr+"\n"+title+"\n"+hr+"\n"+textwithoutlink+"\n"+hr+"\n by "+author_name+"\n "+shortenURL.id; sendtoLINE(message); }

cube ざっくり導入手順
1. 通知を受け取りたいLINEグループにてLINE Notify用のトークンを発行する
(セキュリティ的に管理には注意)
2. Google Apps Scriptで新規プロジェクトを作る
3. 上記のコードをGASにコピペする
4. 3行目の ここにアクセストークン の部分に1.で発行したトークンを貼り付ける
5. GASのメニューの リソース>Googleの拡張サービス を選択
一覧から URL Shortener API を探し、右側のスライダをONにする
下側に貼ってある Google API コンソール のリンクを開く
ページ上部の検索窓にURL shortenerを打ち込み、該当ページにアクセス
なんか青いボタンを押してONにする
6. GASのメニューから 公開>Webアプリケーションとして導入 を選択。
アプリケーションにアクセスできるユーザー欄を 自分だけ から 全員(匿名ユーザーを含む) に変える
更新ボタンを押して操作を確定する。
ダイアログ内に表示された 現在のウェブアプリケーションのURL 下部のURLをコピーする
これも管理には注意してください!
7. 通知の対象にしたいScrapboxプロジェクトを開き、右上のメニューから Notifications を選択する
Add Slack Notification ボタンを押し、URL入力欄を出す
6.でコピーしたURLをペーストし、 Add ボタンを押す
※この操作はプロジェクトのownerしか出来ないと思います
8. 以上の手順を踏むことで、/help-jp/Slackに更新を通知するで説明されているような通知がたぶんLINEに来ます
上記の説明は色々すっ飛ばしている気がするので、分かりづらい所があれば教えてくださいliqriq


制作にあたって、参考にさせて頂いた記事ですliqriq

cube 今後の予定
行数の多い通知が何度も来るとうるさい
一定の行数より多くなったら自動的に省略できるようにしたいliqriq
リクエストの際に様々な値を格納できるようにすれば、適切な頻度で通知が送られるようにできるのでは

cube なんで作ったの
人と意見を交わすことのあるプロジェクトはやはり更新が通知された方が良い
リアクションがないとお互いの精神に悪い
相手がSlackを使っていないが、このためにわざわざ導入を勧めるほどでもない→
→それなら今連絡に使ってるLINEで通知を受け取ろう、となった

cube 感想
IFTTTを経由せずにLINE Notifyを使うのは始めてだったが、より柔軟に運用できそう
IFTTTは改行まわりがなかなか使いづらい
GASの存在は今回始めて知った
「ウェブアプリケーションとして導入」周りの挙動でかなり振り回されてしまった
スクレイピングが楽そう
おうちハックなどに活かしたい