【GAS修行⑤】Qiitaの新着トレンド報告で高意識・高成長BOTをLINE Notifyで作成
【GAS修行⑤】Qiitaの新着トレンド報告で高意識・高成長BOTをLINE Notifyで作成:
・GAS熟練者への道。
・先人達のコードの「写経&コピー」の駆使の成果物のまとめ。
・第五弾
・第一弾・第二弾・第三弾・第四弾はこちら。
・「五回目。」
・「他人依存術卒業を視野に入れる回数になったのか。とは微塵も感じず、今回も駆使していこう。」
・「そうだ。学習アピールできる高意識アプリを作ろう。」
→そういうわけで、今回もサンプルアプリと仏様サイトを発見。
https://qiita.com/uhooi/items/7ae555b5bf05c92fff74
→「今回は参考(マルコピ)プラス独自性も加味しよう。」
→「これのLINE版作成をしてみるか。」
→取り組み開始。
・実際の画面はこちらです。
※Google Apps Script、LINE Notifyの設定は第一弾・第四弾と一緒
※以下の項目を自分のものに変えるのを忘れない。
・LINE Notifyのアクセストークン(先程メモしたもの。)
・今まで通りマルコピはもちろん、ほんのちっぽけな応用もできた。
・これで、俊足な動向もしっかり見逃さずに、かつ記録できる。
・これを見てくださるエンジニアの皆様、「こういう情報収集もできたら、更にステージ上がれるぞ」「これで満足してるのか。所詮この程度か」という意見等あれば、是非教えていただけると幸いです。
・GAS熟練者への道。
・先人達のコードの「写経&コピー」の駆使の成果物のまとめ。
・第五弾
・第一弾・第二弾・第三弾・第四弾はこちら。
経緯
・「五回目。」・「他人依存術卒業を視野に入れる回数になったのか。とは微塵も感じず、今回も駆使していこう。」
・「そうだ。学習アピールできる高意識アプリを作ろう。」
→そういうわけで、今回もサンプルアプリと仏様サイトを発見。
https://qiita.com/uhooi/items/7ae555b5bf05c92fff74
→「今回は参考(マルコピ)プラス独自性も加味しよう。」
→「これのLINE版作成をしてみるか。」
→取り組み開始。
概要
- 一日二回、Qiitaの新着トレンド記事をLINEに通知してくれる。
→最新の動向把握アピールの材料になる。
結果
・実際の画面はこちらです。
作成環境
- Google App Script
- LINE Notify
手順
※Google Apps Script、LINE Notifyの設定は第一弾・第四弾と一緒
Google Apps Scriptの設定
- Googleドライブからスクリプトエディタを起動。
※Googleアカウントを持っていない人は、作成する。
- Googleドライブを起動
- 「新規」→ 「その他」→「アプリを追加」の順にクリック。
- アプリ検索欄に「script」と入力して検索。
- 検索結果に「Google Apps Script」が表示されるので、そこの「接続」ボタンをクリック
- 改めて「新規」→ 「その他」の順にクリックしていくと、「Google Apps Script」が表示されているので、クリック。
- 起動したプロジェクトに名前をつける
※プロジェクト名が反映されるわけではないが、自分がわかる名前をつける。
→保存されたら一旦置いておく。
LINE Notifyの設定
- LINE Notifyのトークンを発行。
-
LINE Notifyにアクセスして、自分のLINEアカウント情報でログイン。 - ログイン後、マイページを開く。
- マイページ内の「トークンを発行する」ボタンをクリック
- 「トークン名」「通知先のトークルーム」を設定する。
- 設定後、「発行する」ボタンをクリックして、トークンを発行。
- 発行されたトークンをコピーして、控えておく。
-
- LINE Notifyを設定したトークルームに招待する。
ライブラリ設定
- スクリプトエディタに戻り、上部メニューの「リソース」から「ライブラリ」をクリック。
- 「ライブラリを追加」欄に
M1lugvAXKKtUxn_vdAG9JZleS6DrsjUUV
と入力。 - 「タイトル」にParser と表示されるので、「バージョン」を最新(現段階では7)にして、「デベロッパーモード」をONにして、保存する。
※Parserとは、HTMLの解析に役立つライブラリ。
コード
- スクリプトエディタ内のコードに、下記を記述する。
line-tommorow-calendar.gs
// 「lineToken」を自分のLINE Notifyのアクセストークンに置き換える var lineToken = "LINEアクセストークンを書く。"; // QiitaのURL var QIITA_BASE_URL = 'https://qiita.com' var QIITA_TRENDS_URL = 'https://qiita.com/trend' // トレンド通知(新着記事のみ) function qiitaNew() { var message = [] var html = UrlFetchApp.fetch(QIITA_TRENDS_URL).getContentText() var items = Parser.data(html).from('{"followingLikers').to('}}}').iterate() for (var i = 0; i < items.length; i++) { var isNewArrival = items[i].match(/isNewArrival":(.+?),/)[1] // 新着記事のみ対象 if (isNewArrival == 'false') { continue } var name = "\n★" + items[i].match(/title":"(.+?)",/)[1] + "\n" var uuid = items[i].match(/uuid":"(.+?)",/)[1] var urlName = items[i].match(/urlName":"(.+?)"/)[1] var link = QIITA_BASE_URL + '/' + urlName + '/items/' + uuid + "\n" /* メッセージ */ message.push(name,link) } // メッセージ整形(カンマ削除のため。) var lineMessage = message.join(""); sendToLine(lineMessage); } // LINE送信処理 function sendToLine(lineMessage){ var token = lineToken; var header = "\n本日の調査報告(*^^*)\n"; var options = { "method" : "post", "payload" : "message=" + header + lineMessage, "headers" : {"Authorization" : "Bearer "+ token} }; UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options); }
・LINE Notifyのアクセストークン(先程メモしたもの。)
- 自分のコードに書き換えて保存後、「qiitaNew」関数を実行して、通知確認。
- スクリプトエディタ内の上部メニューの「関数名」の部分を「qiitaNew」に変更して、二つ左の「▶」ボタンで実行。
-
通知確認後、指定の時間にコードを実行してもらうために、トリガーを設定。
※記事更新のタイミングは、5時/17時の二回
- 完了。
まとめ
・今まで通りマルコピはもちろん、ほんのちっぽけな応用もできた。・これで、俊足な動向もしっかり見逃さずに、かつ記録できる。
・これを見てくださるエンジニアの皆様、「こういう情報収集もできたら、更にステージ上がれるぞ」「これで満足してるのか。所詮この程度か」という意見等あれば、是非教えていただけると幸いです。
参考
-
https://qiita.com/uhooi/items/7ae555b5bf05c92fff74
→このサイトを主に参考にさせて頂きました。大変お世話になりました。 -
https://blog.apibank.jp/use_how-api/
→APIの仕組みがまとめられている。
コメント
コメントを投稿