見出し画像

LINEに投稿してスプレッドシートに記録するヤツ 〜LINE bot + GAS〜

最近のAI関連の情報は、進化速度が早すぎて追ってはキャッチ追ってはキャッチの繰り返し。
「あ、これすごいな!」
「あ、これ後で試そう」
…。
で、後でちゃんと見ようと思ってるモノが脳内に山積みになってきた。

あとでちゃんと見ようと思ってた情報が、数日後には陳腐化していることもザラで、情報を整理する必要が出てきた。
AIにリストを全部渡して整理してもらっても良いのだが、その渡すリストをどこかにまとめておかなければということで、スマホからLINEに投稿したらどんどんスプレッドシートに溜まっていくやつを作ろうと思ったのだ。

ではやっていこう!



完成品の動作
LINEにメモを送る → 自分のスプレッドシートにどんどん書き込まれる




LINE bot を作って→投稿して→自分のスプレッドシートに記録していくやつ を作る

前提条件

・パソコンで作るよ
・Googleアカウントのスプレッドシートに記録するよ
・LINE公式botつくるからLINEアカウント必要だよ
・無料でできるよ


LINEのmessaging APIつかおう

botつくりまーす
↓こちらにアクセスして、自身のLINEアカウントでログインしよう


今すぐはじめよう ←から始めよう


LINEアカウントでログインしよ

ログインしたら↓

そしたらたぶんこういう感じになる↓
(ならなければ新規チャネル作成を探して押してみてって感じ?)
↓なったら設定情報入れよう

プロバイダーは個人開発者なら個人開発者名でOK
所在地は日本かな?
アイコンはお好きな画像登録しよ!


他の項目も入れてこ

チャネル名
はbot名だよ!
情報収集リストアップ君とかそういう名前でいいんじゃないかい?(決めたあとに変更したい場合は7日間は変更できないみたいだから、少しかんがえたほうがいいけど、とりあえずなんでもいいんじゃない?)

チャネル説明もなんでもいいよ!
LINEに投稿して、スプレッドシートに記録するヤツ とかでいいんじゃないかな?

あとはLINE運営との連絡に使うメアド入れて、任意項目は無しでOK
利用規約に同意してチェック

じゃぁ作りましょう!

個人の開発者でもOKだって書いてあるよ

ボットちゃん出来たら次ここ

その中にQRコードあるからLINE使ってる端末で読み取ろう!友達になれるよ

友達登録出来た?
はじめまして!って言ってくると思うよ(たぶん)
話しかけると何か定型文が返ってくると思うよ

とりあえずこいつはこのままにしておいて、次にメッセージの受け取り側(スプレッドシート側)を設置するよ!

※設置した受信側のやつのURLを、このLINE bot ちゃんに設定するんだけど、それは後でやるからbot設定ページは開いておいたままのほうが楽だよ

あ、そうそう。さっきのQRコードが表示されてたページの一番下の方に
チャネルのアクセストークンがあるからコピーしておこう!
(なければ「発行」ボタンで発行してからコピーしておいてね)

めっちゃ長い英数字みたいな文字列がコピーできるよ

コピーできたらどこかにメモとしてペーストしておいてね。今からすぐ使うよ


情報を追記していくスプレッドシート作ろう

↑このリンクから自分自身のスプレッドシートのページに行けるはず
新しいスプレッドシートを作りましょう!
タイトルとかは何でもOK

英語になっちゃってるけど、日本語だと新規作成か新規スプレッドシートかな?


シート名だけ「postlist」としておいてください

どのシートに書き込むかをプログラム中で指定しているため


そしたら、プログラムを設定していきます(こぴぺ作業)
上部メニューの中にある「拡張機能」の中の「Apps Script」を選択してスクリプトを設置します

Apps Scriptは、いろんなプログラムを書けちゃったり実行しできちゃったりするヤツ

↓たぶんこんな感じになるはず

この
function myFunction(){

}

ってなってる部分を以下のプログラムに置き換えます(function Myfunction(){}のやつは全消ししてから以下をペーストします)

const LINE_ACCESS_TOKEN = 'Wo9xVOxxxxxxxxx/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++';

  

function doPost(e) {

const event = JSON.parse(e.postData.contents).events[0];

  

const replyToken = event.replyToken;

let userMessage = event.message.text;



const url = 'https://api.line.me/v2/bot/message/reply';

  

const ss = SpreadsheetApp.getActiveSpreadsheet();

const sheet = ss.getSheetByName("postlist");

sheet.insertRows(2,1);

const nowDate = new Date();

const nowHizuke = Utilities.formatDate( nowDate, 'Asia/Tokyo', 'yyyy/MM/dd hh:mm:ss');

sheet.getRange("A2").setValue(userMessage);

sheet.getRange("B2").setValue(nowHizuke);

const rowsSum = sheet.getLastRow();

  

const text = '多分保存されたよ -> '+userMessage +' (計:'+rowsSum+'行)';

  

UrlFetchApp.fetch(url, {

'headers': {

'Content-Type': 'application/json; charset=UTF-8',

'Authorization': 'Bearer ' + LINE_ACCESS_TOKEN,

},

'method': 'post',

'payload': JSON.stringify({

'replyToken': replyToken,

'messages': [{

'type': 'text',

'text': text,

}]

})

});

return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);

}

(たぶん↑この黒いところの右上あたりにコピーボタン隠れてるんじゃないかな?それ押せばプログラム全部簡単にコピーできそうな気がする)

たぶんこうなったはず

で、ここ重要!!
この矢印のところのモジャモジャ文字を、取っておいたチャネル アクセストークンに書き換えます

例)
とっておいたアクセストークンが例えば aaaabbbbbccccccccc だった場合、
const LINE_ACCESS_TOKEN = 'aaaabbbbbccccccccc';

ってなります。※シングルクォートとシングルクォートの間にトークン文字列が入るようにしてね!空白とか入らないようにぴったりしてね!

できました?
そしたらデプロイしよう
ページ右上の青いデプロイボタンから、「新しいデプロイ」しよう

歯車マークからウェブアプリを選択しますと、左側の種類の選択のところにウェブアプリが出ます

そうしたら、
実行ユーザーを「自分」
アクセスできるユーザーを「全員」にします(LINEbotにアクセスさせるから)

デプロイしましょ

そうするとおそらくこうなるので、アクセス承認に進みます

スプレッドシートは守られているので、外部からある程度のアクセスを承認する必要がある


で、Googleのアカウントがエンタープライズプランで無い場合(ほとんどの人はそう)、こういう安全性警告が出るので、ここを進む

書いてあることは、「Googleのアプリじゃないよ。開発者がちゃんと確認してね(意訳)」

↓進むと

書いてあることは「リスクを理解し、開発者を信頼できる場合にのみ続けること」

最終の承認↓

ようやくデプロイ完了!
URLをコピーしておきましょう(こいつをLINE bot の方に設定してつなぎます)

デプロイIDが含まれているURLをコピーしましょう


コピーしました?じゃぁそれをLINE bot の方に設定しましょう

LINEに戻る


API設定のところ

先ほどQRコードが出てきていたところの少し下に設定場所があります

あとついでに、もう少し下にある応答メッセージも無効にしておきます

なぜなら、webhookの方から応答が返ってくるので


はいこれで完成です!


さっそくLINEに投稿して見ましょう!
投稿内容がうまくスプレッドシートに書き込まれれば成功です!

わたしの場合URLを送りまくってます

2行目にどんどん追加されるプログラムなので、新しい投稿がつねに一番上に来ます。
1行目は見出し行として空けてあるので、好きな項目名を書けます

※いらなくなった行は手動で削除していきましょう

このスプレッドシートをブックマークしておけば、いつでも溜まってるメモが参照できます。
外出先からでもスマホでLINEにメモを送れば、このシートに記録されていくのでどんどんメモを送りましょう!

よき情報収集を!


※どこかでちらっと読んだんですが、GAS(スクリプト)って無料の範囲だと月500回くらいで制限がかかるらしいです。頭の片隅にでも


この記事が参加している募集

仕事のコツ

with 日本経済新聞

この記事が気に入ったらサポートをしてみませんか?