LoginSignup
5
1

More than 1 year has passed since last update.

LINE bot を作ってみた2(postback編)

Last updated at Posted at 2021-05-13

前回 で味を占めたので、今度は postback を使用したアンケートを作ってみた

環境

  • Google Spread Sheet
  • Google Apps Script
  • LINE Developers

経緯

  • LINEbot と GAS だとすぐに作って動作確認できるし、インフラ準備とか必要ないからラクで楽しいなぁ
  • もうちょっと LINEbot の種類を見てみよう

手順(概要)

  1. LINE Developers でチャンネルの作成
  2. GAS 構築
  3. GAS 公開
  4. LINE Developers に Webhook URL を登録
  5. 動作確認

手順(詳細)

1. LINE Developers でチャンネルの作成

  • https://developers.line.biz/console/channel/{id}/ で以下情報のチャンネルを作成する
    • Channel type:Messaging API
    • Provider:前回作成したやつ
    • その他の項目は任意
  • 当該チャンネルでトークンを発行する
    • [MessagingAPI設定] > [チャネルアクセストークン] の「発行」を押下

2. GAS 構築

  • 以下にソースを置きました
  • 今回は GAS ファイルだけ作成
  • その後、任意のスプレッドシートに結果を記載するようにした

    • 前回のやり方だといちいちスプレッドシートを開かないと GAS がいじれなかったのが面倒くさかったため
  • なお、スプレッドシート ID やデバッグ用 LINEID など公開したくない情報は全てスプレッドシートの Properties に入れるようにした

    • 以下設定方法

      1. GAS エディタ右上にある [以前のエディタを使用] を選択

        1.png

      2. 「なして古いの使うん?」ていうアンケートフォームが出てくるがそっ閉じ

      3. [ファイル] > [プロジェクトのプロパティ] と選択

        2.png

      4. [スクリプトのプロパティ] タブに以下 7 行を追加する

        • DEBUGID:デバッグ情報を送付するLINEID。ハッシュ値みたいなやつ。
        • PUSH_URL:LINEbot の PUSH URL
        • REPLY_URL:LINEbot の REPLY URL
        • SHEETID:アンケートの選択肢および結果を貯めるスプレッドシートのID
        • SHEETNAME:スプレッドシートの中のシート名称
        • TEMP_FOLDER_ID:グラフ画像を作成するフォルダ。作成した画像は削除されるため、一時的な出力先。
        • TOKEN:LINEbot のトークン

        3.png

3. GAS 公開

  • 前回の ここ 参照のこと

4. LINE Developers に Webhook URL を登録

  • 前回の ここ 参照のこと

5. 動作確認

  • 動いた!

4.png.png

感想&注意点

  • 前回から引き続き、デバッグ方法がわからなかったので、以下 3 通りの方法を駆使した
    1. GAS エディタのデバッグ機能
    2. ターミナルから curl コマンドを叩く
      • GAS を公開した URL へ、期待する POST パラメータを付与して curl を叩く
      • すると、エラーの場合はエラー文言がレスポンスパラメータとしてもらえる
    3. デバッグしたい箇所に「DEBUGID 向けに LINE のトークを発出」するようにした
      • ソースだとここ みたいな感じ
      • 結局、Exception をキャッチしてスタックトレースを発出するようにした
  • 今回はなんだかんだ完了までに 2 日間くらいかかった
    • デバッグ方法が確立できていないのが主たる原因
    • GAS の公開バージョンも 80 を上回った
  • 何かのシミュレーションをして、その結果を画像配布するようなサービスに流用できそう
    • ただし GAS だと複数人同時問い合わせに耐えうる保証はない
      • し、そもそもやり方を調べていない
    • 簡単に動かしてみる、がテーマなのでとりあえずそこは保留にした
5
1
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
5
1