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?

More than 5 years have passed since last update.

LINEmessagingAPI と GoogleAppsScript でBOT作成してみて気になったこと

Posted at

#背景
筆者は久しくコードから離れたインフラエンジニアである。
ふとコードを書いてみたい衝動にかられたが面倒なことは嫌なので
さくっと動くものが作ってみたかった。

簡単に調べた結果、LINEmessagingAPI と GoogleAppsScriptを用いて
簡単なBOTを作るというのが手軽そうだったのでやってみた。
ひとまずは応答メッセージとして単一の文字列を返すだけのものを作成したが
その際、何点かつまずいたところがあったので備忘する。

#LINEmessagingAPI
開発コンソールの登録はLINEのアカウントがあれば簡単に作成できた。
プランはひとまずtrialを選択した。
もし公開サービスとして運用していくのであればプラン変更が必要になる(trialは登録ユーザ数50が上限)

リファレンスは完全日本語でサンプルコードも見やすいのでつまずきにくいと思う。

#GoogleAppsScriptの設定
ChromeにGoogleAppsScriptアプリを登録し、ブラウザ上からコードが書ける。
一旦はStandaloneスクリプトを作成するのがわかりよいと思う。
GASの概要は下記が参考になった。
https://qiita.com/soundTricker/items/4d04c97c499b22886dfd

GASで一番つまずいた点は公開アプリケーションとして設定する点だった。
エディタ画面から
 公開 > ウェブアプリケーションとして導入
を選択する。
「次のユーザーとしてアプリケーションを実行」欄は「自分」を選択する。
「アプリケーションにアクセスできるユーザー」欄は「全員(匿名ユーザを含む)」を選択する。
自分の権限としてアプリケーションを実行するため、他人の認証を行うと公開アプリケーションとして機能しない。

これらを設定すると「現在のウェブ アプリケーションの URL」として外部から呼び出せるURLが表示される。
これをLINEmessagingAPIのWebhook URLとして設定すればよい。
また「ウェブ アプリケーションで最新のコードをテストします。」としてテスト用のURLも利用できる。
この2種類のURLを以下にまとめる。

公開用URL テスト用URL
URL末尾 exec dev
編集反映タイミング 版(バージョンを更新した後) 保存後即時

この編集反映タイミングに気づかず、ブラウザ上からのテストは想定通り動作するのに
LINEから呼び出すと動作しないという事態になり混乱してしまった。

#デバッグ方法
GASでのデバッグ方法はLogger.log(string)でログに吐き出すというのが基本になると思う。
吐き出したログはエディタ画面から編集 > ログ(ctrl+Enter)で表示できる。
しかしこれは一度実行される度にリフレッシュされてしまうので
貯め続けたい場合はGoogleドキュメントに吐き出す等工夫が必要になりそうだ。(今回はそこまで必要にならなかった)

またブラウザからテスト用URLを叩くとGETメソッドが呼び出されるので
doGet()でPOSTパラメータを偽造してdoPost()を呼び出す等すれば簡単にテストできる。

#感想
以上のようにつまずいた箇所もあったが、アカウントの作成から動作確認まで2~3時間程でできた。
実態として書いたコードは70行程だったが。

インタフェースとして誰もが利用しているLINEが使えるというのはハードルが低いし、テストしやすいし、布教しやすいしとてもよかった。
気が向けばこれを機に更に試してみたい。

##参考

https://qiita.com/cheese/items/33dda88acb5a63c7399c
https://qiita.com/howdy39/items/4dc11af7b1c74c17f7f7
https://qiita.com/soundTricker/items/4d04c97c499b22886dfda
https://qiita.com/kkdmgs110/items/3483ad6cb5c85983ffc6

2
2
1

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?