1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのアドベントカレンダーAdvent Calendar 2024

Day 22

LINE Messaging APIとGASでGoogleスプレッドシートに書き込もう

Last updated at Posted at 2024-12-27

はじめに

今回の記事では、LINEのMessanging APIを用いて、送られた内容をスプレッドシートに反映するということをします。
GASというのはGoogle Apps Scriptの略です。

LINE Messaging APIとは

LINE公式アカウントで使用することができるAPIです。
メッセージの送受信をすることができ、LINEと様々なサービスを連携することができます。
送信は料金がかかるのですが、受信に対するアクションは無制限にできるので、気軽にLINE Botを作ることができます。
LINE BotというのはLINE上で動作するプログラムで、有名なものだとリマインくんなどがあります。

GAS(Google Apps Script)とは

Googleが提供しているプログラミング環境です。
GoogleスプレッドシートやGoogleカレンダーなどと簡単に連携することができ、いろんなことの自動化に向いています。
LINE Messaging APIと相性がいいので、よく組み合わせて使われます。
Google Drive上で作成することができます。

最初にやること

LINE公式アカウントを作り、messanging APIを使えるようにしてください。
messangingAPIのやり方についてはこちらをご覧ください。
GASを新規作成してください。
Googleスプレッドシートを新規作成してください。

プログラム

以下のプログラムをGASに貼り付けてください。

コード.gs
//固定値
var channel_token = "チャネルアクセストークン"

var url = "https://api.line.me/v2/bot/message/reply";

var spreadsheet = SpreadsheetApp.openById("スプレッドシートのID");
var sheet = spreadsheet.getSheetByName('シートの名前');

function doPost(e) {
  var json = e.postData.contents
  var events = JSON.parse(json).events;
  var event=events[0]

  //メッセージタイプがテキストか確認
  if (event.type == "message") {
    //メッセージテキストを取得
    var user_massage = event.message.text; 
    //スプレッドシートの一番下の行にメッセージテキストを追加
    sheet.appendRow([user_massage]);

    if (event.message.type == "text") {

      //自動返信メッセージ
      var message = {
        "replyToken": event.replyToken,
        "messages": [{ "type": "text", "text": "入力を完了しました" }]
      };
      //返信メッセージのオプション
      var options = {
        "method": "post",
        "headers": {
          "Content-Type": "application/json",
          "Authorization": "Bearer " + channel_token
        },
        "payload": JSON.stringify(message)
      };

      //自動返信メッセージを送信する
      UrlFetchApp.fetch(url, options);
    }
  }

}

固定値のところには適切な値を入れてください。
スプレッドシートのIDについてはこちらをご覧ください
チャネルアクセストークンについてはこちらをご覧ください

反映

GASの内容を保存して、新しいデプロイをしてください。
このとき、ウェブアプリとしてデプロイするのと、アクセスできるユーザーを全員に変えることを忘れないでください。
また、アクセスを承認する必要があることがありますが、こちらを参考にして進めてください。
デプロイしたURLをコピーして、LINE Official Account Managerの設定 > MessangingAPIWebhook URLのところにペーストして、保存を押してください。

テスト

公式アカウントを友達追加して、何か言葉を送ってみてください。スプレッドシートに書き込まれると思います。

応用

スプレッドシートをデータベースのように使い、LINEで動作するのでサーバーサイドもフロントエンドもあまり気にすることなくプロジェクトを開発することができます。
ぜひちょっとしたサービスの構築に使ってみてください。

Googleスプレッドシート関連のクラスやメソッドはこちらから調べることができます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?