2024/4/6 更新しました!
背景
GASの勉強をしようと思ったが何から手をつけたら良いかわからない。
何を作ろう、、、どうせなら外部APIを使って何かしたい。
身近にあるLINEにしよう!
ということで、LINEで送信したメッセージをスプレッドシートに反映させてみます。
スプレッドシートを作成する
公式からでも、どこでも作成できるところから作成する。
スプレッドシートが表示されたら、URLの一部分をコピーして、すぐ使えるようにどこでもいいので貼り付けおく。
具体的には以下の赤字部分に該当する箇所をコピーして、メモにでも貼り付け。
https://docs.google.com/spreadsheets/d/この部分/edit#gid=0
この赤字がスプレッドシートID。
Google Apps Script
始め方は簡単で、スプレッドシートを開いたら上部の一覧に拡張機能があるので、そこからApps Scriptをクリック。
コード
下記のコードをコピーして貼り付ける。
貼り付けたら15行目あたりにある 自身のSpreadSheetIDをここに記入
を先ほどコピーした赤字部分のスプレッドシートIDに置換する。
function doPost(e) {
// 投稿されたメッセージを取得
var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
if(userMessage.match(/^\$/)) {
// $から始まるメッセージの場合、$を除いた文字列を再代入
userMessage = userMessage.slice(1);
} else {
// $から始まらない場合は何もしない(処理終了)
return;
}
// スプレッドシートへ保存=======================================
var response = e.postData.getDataAsString();
var spreadsheetId = "<自身のSpreadSheetIDをここに記入>";
var sheetName = "シート1";
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var sheet = spreadsheet.getSheetByName(sheetName);
// 空白・タブ・改行で区切り配列に変換
var arr = userMessage.split(/\s/);
// 配列の先頭に日時を代入
arr.unshift(new Date());
// セルの最下部に配列を転記
sheet.appendRow(arr);
// =======================================
return ContentService.createTextOutput(JSON.stringify({'content': 'post ok'})).setMimeType(ContentService.MimeType.JSON);
}
貼り付けた後は↓こんな感じです。
デプロイ
LINEからコードを参照できるようにデプロイします。
とはいえっても、右上にデプロイとしっかり書いてくれてるので、そこをクリックして新しいデプロイを選択します。
別の小さいウィンドウが立ち上がるので、そのままデプロイをクリックします。
ウェブアプリのURLをコピーしておきます。
これで外部からコードを参照する準備が整いました。
Messaging API設定
LINE側の設定を行なっていきます。
下記リンクにログインします。
https://developers.line.biz/ja/
おそらくほとんどの方がLINEアカウントは持っていると思うので、登録方法は割愛します。
ログインできたら、少し下の方にスクロールすると、Messaging APIと書かれたカードがあるので、クリックします。
続いて、今すぐはじめようをクリック
Messaging APIの設定画面に移るので、適当に入力していきます。
今回の例では入力が必要な箇所は基本testで通しています。
全部入力したらページの一番下にある作成をクリックします。
これで基本設定は完了したので、少し前に作成したコードと紐づけていきます。
まずはMessaging API設定タブへ移動します。
少し下に行くと、Webhook URLがあるので、編集をクリック。
入力欄が現れるので、Apps Scriptのデプロイ時にコピーしたURLを貼り付けて更新をクリック。
Use webhookがActiveになっていることを確認してください。(でないと、LINEからのメッセージが送られません。)
できたら、上の方にあるQRコードを読み取って友達に追加すれば完成です!!
テスト
では実際にメッセージを送ってみましょう!
今回のコードでは先頭に$マークのついたメッセージのみをスプレッドシートに反映させるようにしていますので、
$つけたパターンとつけていないパターンで送ってみます。
この後にスプレッドシートを見てみると
しっかりと$マークが先頭についたメッセージは反映されて、ついていないものは反映されていないことがわかります!
LINEの返答メッセージやコードを修正して自分なりのフォーマットを見つけてください!
↓次の記事↓
参考:
人気の書籍
コメント