🌟

LineBotをスマホとReplitで作ってみる

2022/04/04に公開

今回使用するもの

準備

Replit側

  1. まずはReplitのアカウントを作成
  1. Pythonのreplを作成する

  2. 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)

ボットの作成

  1. LINE Developersコンソールにログインする
  1. 新規プロバイダーを作成する
    ホーム画面の[新規プロバイダー作成]をクリックします。

  2. チャネルを作成する
    作成したプロバイダーページで、[チャネル設定]タブの[Messaging API]をクリックします。

  3. チャネルアクセストークンを発行する

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を確認できます。

終わりに

初めて記事を書いてみました。説明などが不足しているかもしれませんが何かあったら気軽にコメントください。

GitHubで編集を提案

Discussion