【入門用】PythonによるLINEbot作り方

PythonによるLINEbot作り方

こんにちは!

今回はPythonを使って、オウム返しをするLINEbotの作り方を解説します。

 

デプロイはしないため、ローカル環境だけでサクッと試すことができます。

これなら、初心者の方でも簡単に作れるかと思います。

 

是非、最後まで読んでみてください。

 

 この記事でわかること

  • LINEbotの作り方
  • デプロイ無しでLINEbotを試す方法
  • LINEbotを応用するためのヒント

 

 

準備

始めに、必要なものをすべて書き出してから1つずつ見ていきます。

 

今回、LINEbotを作るにあたって必要なものを以下に示します。

 

 今回必要なもの

  • LINEアカウント
  • ngrok

 

LINEアカウント

LINEアカウントは、LINE Developersに登録するために必要となります。

 

では、こちら のリンクからLINE Developersに登録していきましょう。

 

 

STEP.1

リンク先に飛ぶと、このような画面が表示されているかと思います。

画面中央付近の「ログイン」をクリックします。

 

LINE Developersの登録画面

 

 

STEP.2

ログイン方法を選択できると思うので、自分のアカウントなどでログインしてください。

 

LINE Developersの登録画面

 

 

STEP.3

ログインできたら、このような画面になると思います。

空欄の名前とメールアドレスを埋めたら「Create my account」をクリックします。

 

LINE Developersの登録画面

 

 

STEP.4

次は、このような画面が表示されると思うので、ここで新規プロバイダーを作成します。

プロバイダーとは、アプリを提供する組織のことです。

 

よくわからなくてもいいので、とりあえず名前を入力して、「Create a new provider」をクリックしましょう。

 

LINE Developersの登録画面

 

 

STEP.5

次は、チャンネルを作成します。

チャンネルは、botアカウントのことだと思ってもらえれば大丈夫です。

 

LINEbotを作成するためには、オレンジで囲んだ「Messaging API」を選択します。

 

LINE Developersの登録画面

 

 

STEP.6

次は、このような画面が表示されると思うので、空欄を適当に埋めて「作成」をクリックしてください。

 

LINE Developersの登録画面

 

 

ここまでできれば、ひとまずLINE Developersでの作業は完了です。

 

 

ngrok

次は、公式サイトから、ngrokをダウンロードしていきましょう。

 

ngrokは、外部からローカルサーバーにアクセスできるようにするためのものです。

これを使うことによって、localhostでLINEbotを試すことができます。

 

デプロイまでやろうとすると少し難しくなってしまうので、初心者の方はこちらのngrokがおすすめです。

 

自分のPCのOSに合わせてダウンロードしてください。

 

これで下準備は完了です。

次の章からは、実際にPythonを使ってコーディングしていきます。

 

スポンサーリンク

 

Pythonのコード解説

今回は、LINEbotというディレクトリの中に2つのファイルを作成します。

 

1つ目が、APIのキー情報を書き込む、「config.py

2つ目が、実際にLINEbotを制御する、「app.py

 

まあ、名前は適当につけてもらって構いません。

 

ただ、「linebot.py」というファイル名にしてしまうと、linebotというライブラリをインポートする際に、うまくいかなくなる恐れがあるので注意してください。

 

まずは、LINEbotに必要なライブラリをインストールします。

 

$ pip install line-bot-sdk

 

 

config.py


最初に、config.pyの中身を書き込んでいきます。

 

 

それぞれのキーは、前の章で作成したLINEのチャンネルから取得できます。

作成したチャンネルにアクセスして、「チャンネル基本設定」の下付近を確認してもらうと、「チャンネルシークレット」という欄があると思います。

 

 

この黒塗りされたところを、config.pyの変数、LINE_CHANNEL_SECRETの「****」部分にコピペします。

 

表示されていない場合は、右側の「発行」ボタンをクリックしてください。

そうすれば表示されると思います。

 

 

次は、同じページ内にある「Messaging API設定」をクリックしてください。

 

 

こちらも下の方に「チャンネルアクセストークン」と書かれたところがあると思います。

先ほどと同様に、表示されていない場合は、右側の「発行」ボタンをクリックしてください。

 

これを、config.pyの変数、LINE_CHANNEL_ACCESS_TOKENの「****」部分にコピペします。

 

「config.py」の内容は以上です。

 

config.pyに入力したキーは外部に公開しないように気を付けてください。

 

app.py


今回は、LINE Developersが公式で公開しているひな形を利用します。

公式のリポジトリはこちら になります。

 

公式のコードを一部改変したものはこちらになります。

 

 

14 ~ 36行目までのコードは、基本的には変更する必要はありません。

( import部分は場合によって変わる )

 

39行目にある、 @handler.add(MessageEvent, message=TextMessage) から下の部分が、名前からわかるように、テキストメッセージを受け取った際に実行される関数です。

この、39 ~ 47行目の関数の中で、オウム返しを行っています。

 

41, 42行目は、LINE developers の方から動作確認をする際に、エラーが発生しないようにするために書き加えました。

 

44 ~ 47行目が、LINE側からメッセージを返信する部分となっています。

 

line_bot_api.reply_message() には2つの引数を指定しています。

1つ目の引数に指定されている event.reply_token は、メッセージの返信先の情報を与えています。

2つ目の引数に指定されている TextSendMessage(text=event.message.text) は、返信するメッセージの内容を指定しています。

 

event.message.textの部分は、LINEから受け取った値が格納されているため、この場合だと、受け取った値をそのまま返信している、ということになります。

つまり、この部分を別の文字列等に置き換えることで、自由に返信内容を指定することができます。

 

「app.py」の内容は以上です。

では、次の章で実際に実行してみましょう。

 

スポンサーリンク

 

LINEbotの実行

まずは、LINEbotを動かすための手順を書き出してから1つずつ見ていきます。

 

  • app.pyを実行する
  • ngrokでローカルホストに外部からアクセスできるようにする
  • 動作確認

 

では、さっそく見ていきましょう。

 

app.pyを実行してみます。

 

$ python app.py

 

実行すると、以下のような画面が表示されると思います。

 

 

エラーが発生しなければ、とりあえず次に進みます。

 

 

記事の頭の方でダウンロードしたngrokを、解凍した後に実行します。

 

 

実行すると、このようなプロンプト画面が開くと思うので、 ngrok http 8000 と打ち込みます。

 

 

すると、以下のような画面が表示されるかと思います。

 

 

オレンジの線を引いたところにあるURLをコピペするなりしてください。

また、この画面を抜けるには Ctrl + C を押せばいいのですが、LINEbotを利用する間は常に起動させておいてください。

 

では、先ほどのURLをLINE Developersの方に張り付けていきます。

 

上の方で、チャンネルアクセストークンを取得するためにアクセスした「Messaging API設定」画面にアクセスします。

 

 

画面中央付近に、「Webhook設定」という項目があると思うので、「Webhook URL」の欄に先ほどコピペなりしたURLを貼り付けます。

「Webhookの利用」をオンにしていない場合はオンにしてください。

 

貼り付けたら、その後ろの方に「/callback」を追加してください。

そこまでできたら、検証をクリックしてみましょう。

 

このように表示されていたら成功です。

 

 

もしエラーが表示された場合は、Pythonを実行したプロンプトからエラー内容を確認してみてください。

 

では、実際にbotアカウントを友達追加して、メッセージを送ってみましょう。

botアカウントのQRコードは、「Messaging API設定」のページ内にあるので、そこから友達追加します。

 

 

オウム返しできていることが確認できました。

 

LINEbotの作り方は以上です。

 

今回のLINEbotは、ngrokを終了すると動かくなるので注意してください。

また、ngrokを起動し直す場合、再び「Webhook URL」のところでURLを設定し直す必要があります。

 

実用的なものを作りたいのであれば、デプロイ方法なども調べてみてください。

 

おわりに

LINEbot作成はどうだったでしょうか。

 

今回取り上げた例はチュートリアル的な内容なので、あまり面白くなかったかもしれませんが、LINEbotの雰囲気だけでもつかめてもらえれば、自分でアレンジできると思います。

 

ちなみに、僕が先日作ったものだと、Twitter APIも絡めることによって、LINEのメッセージからツイートできるというものを作ったりしてみました。

 

こんな感じで、他のAPIと絡めてみると面白いかもしれません。

 

Twitter APIの取得方法については、こちらで詳しく解説しています。

>>【2020年版】Twitter API 申請手順の解説【画像付き】

 

是非、いろいろ試してみてください!

 

では、今回はここまでとします。

お疲れさまでした!