【놀이용】유파파를 LINE Bot로 해 본다(Python)

소개



@Nemesis씨의 Java로 유파파를 실장해 보는 것을 보고, 자신의 이름을 넣고 유파파에 놀려 보고 싶은 분도 있는 것은 아닐까? ? 라고 생각 Bot화했습니다.
다음 QR 코드에서 Bot 친구 추가가 가능합니다.
꼭 놀아보세요.

엔지니어계 쿠마에서 이런 것 유행하고 있기 때문에, 세상에도 알리고 싶기 때문에 꼭 LGMT를 잘 부탁드립니다.



구현에 대해



언어는 파이썬을 사용했습니다.
""계약서야. 거기에 이름을 쓰지 마라. ""를 발동하기 위해서는 유저로부터의 리퀘스트가 필요한 것은 조금 곤란했습니다만, 귀찮아서 「일하게 해」정말의 말을 말하면 반응하도록(듯이) 했습니다.

기본적으로 문자 깎기만 놀아보세요.

코드



main.py
from flask import Flask, request, abort
import random

from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)

from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage)
import os

app = Flask(__name__)

YOUR_CHANNEL_ACCESS_TOKEN = 'XXXXXXXXXXX'
YOUR_CHANNEL_SECRET = 'XXXXXXXXXXX'

line_bot_api = LineBotApi(YOUR_CHANNEL_ACCESS_TOKEN)
handler = WebhookHandler(YOUR_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_message(event):
    word = event.message.text
    if '働かせて' in word:
        reply_word = "契約書だよ。そこに名前を書きな。"
    else:
        newName = random.choice(word)
        reply_word = f"フン。{word}というのかい。贅沢な名だねぇ。 今からお前の名前は{newName}だ。いいかい、{newName}だよ。分かったら返事をするんだ、{newName}!!"

    line_bot_api.reply_message(
        event.reply_token,
        TextSendMessage(text=reply_word))


if __name__ == "__main__":
    port = int(os.getenv("PORT", 5000))
    app.run(host="0.0.0.0", port=port)


실행 결과



좋은 느낌으로 잘라 주네요.



감상



공문자를 보낼 수 없기 때문에 정해진 에러를 뱉을 수 없는 것은 용서해 주세요.

왜 한 문자 잘라내기가 유행하고 있는지 수수께끼.
랜덤으로 문자수도 잘라내고 싶다.

LINE bot은 너무 편리하기 때문에 더 기능 알고 싶다.

이상.

좋은 웹페이지 즐겨찾기