2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LINE公式アカウント × GAS 連携備忘録

Posted at

LINE公式アカウント × GAS 連携備忘録

1. LINE公式アカウントの初期設定

1-1. アカウント作成

  1. LINE公式アカウントにアクセス
  2. 「アカウントを作成」をクリック
  3. メールアドレス or LINEアカウントで登録
  4. アカウント名やプロフィールを入力

1-2. チャネル作成

  1. LINE Developers コンソールに移動
  2. 「プロバイダー」作成
  3. 「Messaging API」用のチャネルを作成
  4. 長期用チャネルアクセストークンを発行してメモしておく

1-3. 基本設定

  • リッチメニューの設定(任意)
  • BOTモードの確認
  • Webhook URL を利用する場合は「利用する」に設定

2. GASの設定

2-1. プロジェクト作成

  1. Google Apps Script にアクセス
  2. 新規プロジェクトを作成

2-2. スプレッドシート準備

  1. 家計簿やメモを記録するスプレッドシートを作成
  2. シートIDを控えておく(URLの /d/xxxxxxxxx/ の部分)
  3. 必要であれば列を準備(例: 日付、メモ、散歩時間など)

2-3. スクリプト準備

const LINE_CHANNEL_ACCESS_TOKEN = 'ここに長期用トークンを貼り付け';
const SPREADSHEET_ID = 'ここにスプレッドシートIDを貼り付け';
const SHEET_NAME = '家計簿'; // シート名

function doPost(e) {
  const event = JSON.parse(e.postData.contents).events[0];
  const replyToken = event.replyToken;
  const userMessage = event.message.text;

  // 日付を取得
  const timestamp = new Date();

  // スプレッドシートに記録
  const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME);
  sheet.appendRow([timestamp, userMessage]);

  // LINEに返信
  UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
    'method': 'post',
    'headers': {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + LINE_CHANNEL_ACCESS_TOKEN
    },
    'payload': JSON.stringify({
      'replyToken': replyToken,
      'messages': [{
        'type': 'text',
        'text': '記録しました!\n' + userMessage
      }]
    })
  });
}

2-4. デプロイ

  1. 「デプロイ」 → 「新しいデプロイ」
  2. 「ウェブアプリ」を選択
  3. 「実行するユーザー」 → 自分
  4. 「アプリにアクセスできるユーザー」 → 全員(匿名含む)
  5. 公開URLを控えて、LINE公式アカウントのWebhook URLに設定

⚠️ 注意: 公開範囲を「全員」にすると誰でもアクセスできるため、URLの漏洩には注意


3. LINE公式アカウントの連携設定

3-1. Webhook URL 設定

  1. LINE公式アカウント管理画面で「Messaging API」タブを開く
  2. Webhook URL に GAS のウェブアプリURLを設定
  3. 「Webhook送信」を有効にする

3-2. 動作確認

  1. LINE公式アカウントに友達登録
  2. テキストを送信してスプレッドシートに記録されるか確認
  3. LINEで「記録しました!」と返信されることを確認

備考

  • 今回は 長期用トークン 前提なので、短期トークンの更新は不要
  • 複雑な処理を入れる場合は、try-catchでエラー処理を追加
  • スプレッドシートで管理することで、後から家計簿やメモを集計・分析可能
  • 複数LINE公式アカウントを使う場合は、チャネルごとにGASプロジェクトを分けると管理しやすい
2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?