オウムならわかるLINE botの使い方

オウムならわかるLINE botの使い方

LINE APIでオウム返しbotを作ろうとしたときに、ちょっと躓いてしまったので、備忘録として書いておきます。

プログラム側のエラーはheroku logsとかで参考できるので、今回は、プログラム側の話はすっ飛ばして、環境変数やLINE Developerのサイト側での設定について書いてゆきます。

材料

  • LINE Developers登録
  • Python 3.6以上
  • Flask
  • heroku

LINE APIを使ってみた

LINE DevelopersはTwitter APIとは違って、開発者審査とかがなく登録が簡単なので、「プログラミングはそれなりにやったし、なんかツールを作りたい!」というのにはうってつけです。

私も、「大学で受ける次の講義を教えてくれるbotがあればなあ」と考えて、まずはLINE APIを使ってみようと考えたことがありました。

ともあれ、私は自称Pythonistaで、PythonならWeb上に大量にツールがあるので、それらを探して使うことにしました。

下記(参考文献)にあるようなページを読み漁り、「ふむふむ、なるほど」という感じでプログラムを作っていきました。

うまくゆかないオウム返し

コードの説明は下記ページに委ねます。面倒だから。著作権的な意味で。

この他にも、たぶんもっとページを参照にしたかもしれませんが、なにせ、多すぎたし、だいたい同じようなことが書いてあるので、割愛します。

さまざまなページに載っているプログラムをコピペして実行してみても、オウム返しがうまくいきませんでした。

こんな感じになって、ぜんぜんうまく返してくれません。

はて、どうして返してくれないのか。

そもそも与えたキーは合ってる?

これ、たぶん陥った人いると思います。

LINE APIで与えるキーはPythonで言えば、YOUR_CHANNEL_ACCESS_TOKENYOUR_CHANNEL_SECRETの2つだということは、多くのページに書かれています。

しかし!

私はYOUR_CHANNEL_SECRETの方はLINE Developers側に記載されているChannel Secret(画像の場合は8794a8****)を登録していましたが、YOUR_CHANNEL_ACCESS_TOKENの方には、Channel ID(画像の場合は15772****)を登録してしまっていました。

正しくはChannel IDではなく、「メッセージ送受信設定」の中にある「アクセストークン(ロングターム)」でキーを生成する必要がありました(画像の場合は9EOF0/os****)。

さて、これでheroku gitにaddしてcommitしてpushすれば、いよいよ動く。そう思っていました。

メッセージありがとうございます😆申し訳ございませんが、このアカウントから個別に返信することはできません😔次回の配信をお楽しみに✨

いや、できてないんかい!

この長い無駄な定型句、なんで出てくるの?

確かに「gara」と打ったら「gara」とは返してくれるけど……。

あえて例えるなら、私がオウムに「こんにちは!」と言うと、オウムが「ナニ? マタ、アタシニオウムガエシサセタイワケ? マッタクアンタモヒマジンネ。マア、ヤレッテイウナラヤッテヤルケド。コンニチハ!」と愚痴ってくるようなものです。

どうしてこうなったのか、Python側のコードを見ても、それっぽいところはありませんでした。

じゃあ、どうすれば……。

と考えていると、「もしかしたら、定型句は、LINE Developerのサイト側で管理しているのかもしれない」と思い立ち、見てみました。

あった

「こんなところに?」という場所に、定型句を管理しているページがありました。

自動応答メッセージの「設定はこちら」をクリックすると新タブでページが開きます。

そこから「応答設定」をいじると、無駄な返信はしなくなってくれます。

こんな感じでうまく返してくれました!

さいごに

今回は完全に私の検索力不足でした。

「検索力をもっと磨かないといけないなあ、他人にググれカスwww とか言っていられないなあ」と思いました。

参考文献

LINE APIでオウム返しbotを作るときに、私が参考にしたページです。良ければ参考にしてください。最終閲覧日は2019年5月25日。