Pythonプログラミング Python自動化

Pythonで作る竈門炭治郎のLINE BOT

こんな方におすすめ

  • PythonでLINE BOTを作りたい
  • LINEでメッセージに応じた自動応答をやってみたい

LINE BOTの作り方についてです。まずはコピーして作成してみて、動いたら自分なりにプログラムを変更してみると面白いと思います。

プログラムの概要

PythonでHerokuのサーバーを利用して、FlaskのWebアプリケーションを動かすことで、LINE BOTを構築します。LINEのメッセージをHerokuが受け取ってFlaskのWebアプリケーションがLINEに応答するようなイメージになります。従いまして、LINE Developperの登録、Herokuの登録が事前に必要となります。今回は、子供が大好きな鬼滅の刃の竈門炭治郎BOTを作成して呼吸の種類と型を入れると、炭治郎が必殺技を自動で返すLINE BOTを作成します。

 

 

 

 

 

 

 

プログラムの作り方

LINE BOTということで、LINEのMessaging APIを使用するための登録が必要です。また、Herokuのサーバーを利用するための登録も必要になります。

Messaging APIの登録方法

まず、LINE developers にログインします。

LINE developers にアカウントを作成しログインする

 

 

 

 

 

 

 

 

 

初回ログイン時には、登録が必要となります。名前とメールアドレスを入れてアカウントを作成してください。

新規プロバイダーを作成する

ログイン後に、新規プロバイダーを作成します。企業や組織の名前になりますが、個人で使用される場合は、自分の名前でよいと思います。

 

 

 

 

Messaging APIのチャンネルを登録する

Create a new channel から Messaging APIを選択します。

そのあと、アプリ名、業種、メールアドレスなどの入力については、指示に従って作成してください。

 

 

 

 

 

 

チャンネルが作成されると、以下のようにチャンネルが追加されます。

(この写真は、アプリ名を竈門炭治郎として、プロフィールを既に編集した画像です)

 

 

 

 

 

Messaging APIのチャンネルの各種設定について

作成したチャンネルを開くと、アカウントの設定ができます。重要箇所を記載しますので、アイコンなどは自由に変更してください。

①チャンネルアクセストークン(Channel access token )の発行

チャンネルアクセストークンを発行してください。このトークンは後で、PythonプログラムとHerokuの環境変数の設定時に使用します。

②チャンネルシークレットキー(Channel secret )

チェンネルシークレットキーは後で、PythonプログラムとHerokuの環境変数の設定時に使用します。

③Webhook送信(Use webhook) を利用可能にするに設定

④Webhook URLの設定

Herokuの設定後に入力します。

⑤「自動応答メッセージ」(Auto-reply-message)と「友達追加時のあいさつ」(Greeting messages) を"利用しない(Disable)"に変更

QRコードからLINEの友達に追加する

Messaging APIのチャンネル内にQRコードがあるので、自分のLINEに登録します。完成した時に、BOTが期待通り動くことを確認してください。

Herokuの登録

Heroku  のサイトでアカウントを作成しログインします。

新規アプリを作成する。

ログイン後、以下の画面から新規アプリを作成します。アプリ名は既に誰かが使用している場合は、作成できません。独自のアプリ名をつけてください。

 

 

 

LINE Messaging APIのWebhook URLに設定する情報を取得する

①作成したアプリ内のSettingのDomainに書かれているURLに/callbackをつけたURLを記録する。

(例)Domainが https://mayrxxxxx.herokuapp.com/  の場合、https://mayrxxxxx.herokuapp.com/callbackとなる。

② ①のURLをLINE Messaging APIのWebhook URLに入力する。

Pythonプログラム

必要なモジュールをインストールします。

ターミナルから以下を実行し、インストールします。

main.pyの作成

main.pyのプログラムを作成します。竈門炭治郎BOTということで、LINEで送られてきた呼吸法と型のメッセージ対して、reモジュールのsearch関数を用いて、条件分岐して、必殺技の名前を返すようなBOTを作成しています。呼吸法がたくさんあるので、最初の部分だけ記載します。

設定ファイルの作成

以下、3つの設定ファイルの作成が必要になります。これらは、main.pyと同じフォルダに置く必要があります。

  • runtime.txt →Pythonのバージョンを記載を記載する

  • requirements.txt →インストールするライブラリの記載する

  • Procfile →プログラムの実行方法を定義する。(.txtなし)

デプロイする

デプロイは、ターミナルから行います。main.pyの置いてあるフォルダに移動して、順に実行してください。

Herokuコマンドとgitコマンドをインストール

ターミナルからHerokuにログイン

これを実行すると、Webサイトが開くので、Loginします。ターミナルに、Logged in as xxxx@xxxx のようにアカウントが表示されたら成功です。

gitコマンドを入力する

以下のコマンドを順に実行します。

環境変数を設定する

LINEのMessaging APIのチャンネルアクセストークンとチャンネルシークレットキーを入れます。

 

以上でデプロイが完了します。

自分のLINEからメッセージを送り、期待通りに動くことを確認してください。Pythonのプログラムに記載があるように、”水の呼吸壱の型”と送ると、”水面斬り”と返信が来るはずです。

まとめ

今回は、LINE BOTのサンプルとして、鬼滅の刄の竈門炭治郎BOTを作成しました。このプログラムを応用することで、様々なことができます。宅急便のQandAの自動応答BOTのようなものも作成することができます。ぜひチャレンジしてください。

 

 

スポンサーリンク

-Pythonプログラミング, Python自動化

Copyright© MAYRのPython活用法! , 2021 All Rights Reserved Powered by AFFINGER5.