[LINEBOT] 基本設定ファイル作成 ①
はじめに
筆者は、アルバイトでシステム開発を行っている九州大学の大学院生です。
本格的に開発を行っているのは1年ほどです。
対象となるのは「開発経験がほとんどないがLINEBOTで遊んでみたい学生」なので
開発したことたくさんあるよーって人は公式ドキュメントみた方がいいです..💦
記事は複数に分けて投稿しようかな?と思っているので
随時追加していきます!
github
投稿内容(予定)
- LINEアカウントを作成 @ LINE Developers
- Python 基本設定ファイルの作成
- おうむ返しBOT作成
- ローカルで動作確認
- Heroku にデプロイする
- リッチメニューの設定方法
- ユーザごとにLINEBOTの返信内容を変えてみる
本記事では以下の内容を紹介していきます
- LINEアカウントの作成方法
- Python 基本設定ファイルの作成
1 LINEアカウントを作成 @ LINE Developers
LINE Developers にアクセスしてログインする
1-1 はじめに1-2 プロバイダーを作成
1-3 Create a channel から実際のアカウントを作成する
Channel Type: Messaging API
にして自由にアカウントを作成してください
Privacy policy URL などは設定しなくて大丈夫です!
アカウント名や画像などは後で変更可能です(LINE Official Account Managerで簡単に変更できます)
1-4 アカウント追加
ここまででLINEアカウントの作成は完了です!
2 設定ファイルの作成
ここから実際にコードをかいていきます
今回は Python で書きます。参考資料はこちら。
line-bot-sdk-python :github
line-bot-sdk-python :document
必要なファイルと階層構造
.
├── main.py
├── requirements.txt
├── .env
├── .gitignore
1. インストールするライブラリを記載した requirements.txt
Flask
line-bot-sdk
python-dotenv # 環境変数取得
2. メインプログラム main.py
ボットを動作させるための設定を書いています。
from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
import os, dotenv
app = Flask(__name__)
# 環境変数取得
# LINE Developers: アクセストークン/ChannelSecret
dotenv.load_dotenv()
CHANNEL_ACCESS_TOKEN = os.environ["CHANNEL_ACCESS_TOKEN"]
CHANNEL_SECRET = os.environ["CHANNEL_SECRET"]
line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(CHANNEL_SECRET)
# Webhookからのリクエストの署名検証部分
@app.route("/callback", methods=['POST'])
def callback():
# 署名検証のための値
signature = request.headers['X-Line-Signature']
body = request.get_data(as_text=True)
app.logger.info("Request body: " + body)
# 署名検証
try:
handler.handle(body, signature)
except InvalidSignatureError: # 失敗したとき エラー
print("Invalid signature. Please check your channel access token/channel secret.")
abort(400)
return 'OK'
# 以降で ボット処理内容について記載 =========================================
# ====================================================================
# python main.py で動作
if __name__ == "__main__":
app.run(port=5000)
3. gitにpushしないファイルを記載 .gitignore
以下のファイルの中身をそのまま記載しています
4. 環境変数ファイル .env
LINEBOTで使用する アクセストークンや ChannelSecret は秘密情報なので git にあげないようにここに記載します
CHANNEL_ACCESS_TOKEN = ""
CHANNEL_SECRET = ""
LINE Developers の以下の箇所から取得した値を設定します
CHANNEL_SECRET
CHANNEL_ACCESS_TOKEN
おわりに
作業が完了したら忘れずに git にあげておきましょう
git init
git remote add origin ~~
git add .
git commit -m "first commit"
git push origin master
今回は LINEBOT を作るための基本的な作業を行いました
次回からは実際にLINEBOTを動かしてみたいと思います
ありがとうございました!
Kaze Shindo
iQLab Engineer
Discussion