🌟
LineBotをスマホとReplitで作ってみる
今回使用するもの
- Python
- line-bot-sdk-python
- Flask
- Replit(Pythonを動かすために)
準備
Replit側
- まずはReplitのアカウントを作成
-
Pythonのreplを作成する
-
main.pyにコードを貼り付ける
import os
import sys
from argparse import ArgumentParser
from flask import Flask, request, abort
from linebot import (
LineBotApi, WebhookHandler
)
from linebot.exceptions import (
InvalidSignatureError
)
from linebot.models import (
MessageEvent, TextMessage, TextSendMessage,
)
app = Flask(__name__)
# アクセストークの読み込み
channel_secret = os.getenv('LINE_CHANNEL_SECRET', None)
channel_access_token = os.getenv('LINE_CHANNEL_ACCESS_TOKEN', None)
line_bot_api = LineBotApi(channel_access_token)
handler = WebhookHandler(channel_secret)
@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:
abort(400)
return 'OK'
@handler.add(MessageEvent, message=TextMessage)
def handle_text_message(event):
text = event.message.text
if text == 'こんにちは':
profile = line_bot_api.get_profile(event.source.user_id)
line_bot_api.reply_message(
event.reply_token, [
TextSendMessage(text='こんにちは' + profile.display_name + 'さん')
]
)
if __name__ == "__main__":
app.run(port=8000)
ボットの作成
- LINE Developersコンソールにログインする
-
新規プロバイダーを作成する
ホーム画面の[新規プロバイダー作成]をクリックします。 -
チャネルを作成する
作成したプロバイダーページで、[チャネル設定]タブの[Messaging API]をクリックします。 -
チャネルアクセストークンを発行する
Replitにボットの情報を登録する
作成したreplを開き、右下のCommands
をタップ
そしたらSecret
を開き
このようにする
実行する
code
に戻り、右下の緑の▶を押すとパッケージのインストールが始まり完了しだい実行されます。(かなり時間がかかる)
実行されるとサイトが開きます。そのサイトのURLをコピーしておいてください。
Webhookの設定
作成したチャンネルのMessaging API設定
>Webhook設定
>Webhook URL
にコピーしたURLを貼り付けて最後にcallback
を追加
例: https://line-bot.〇〇.repl.co/callback
になってるはず
そしたら下のWebhookの利用
をオンにします
友だち追加をして送ってみる
LINE Official Account Managerに移動し
ボットを選択して友だちを増やす
>友だち追加ガイド
を開きURLを作成
で友だち追加をするURLを確認できます。
終わりに
初めて記事を書いてみました。説明などが不足しているかもしれませんが何かあったら気軽にコメントください。
Discussion