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

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);
}
ざっくり導入手順1. 通知を受け取りたいLINEグループにてLINE Notify用のトークンを発行する
(セキュリティ的に管理には注意)
2. Google Apps Scriptで新規プロジェクトを作る
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しか出来ないと思います
上記の説明は色々すっ飛ばしている気がするので、分かりづらい所があれば教えてください

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

今後の予定行数の多い通知が何度も来るとうるさい
一定の行数より多くなったら自動的に省略できるようにしたい

リクエストの際に様々な値を格納できるようにすれば、適切な頻度で通知が送られるようにできるのでは
なんで作ったの人と意見を交わすことのあるプロジェクトはやはり更新が通知された方が良い
リアクションがないとお互いの精神に悪い
相手がSlackを使っていないが、このためにわざわざ導入を勧めるほどでもない→
→それなら今連絡に使ってるLINEで通知を受け取ろう、となった
感想IFTTTを経由せずにLINE Notifyを使うのは始めてだったが、より柔軟に運用できそう
IFTTTは改行まわりがなかなか使いづらい
GASの存在は今回始めて知った
「ウェブアプリケーションとして導入」周りの挙動でかなり振り回されてしまった
スクレイピングが楽そう