【Python】정기 실행하는 LineBot를 작성한다

6083 단어 경 6파이썬linebot
지난번 만든 LineBot을 사용하여 정기적으로 메시지를 보낼 수 있습니다.

정기 실행할 일정 만들기



Heroku에 일정을 추가합니다.
heroku addons:add scheduler:standard

Heroku Scheduler가 추가되므로 선택합니다.


Create job을 선택하여 새 일정을 만듭니다.


실행할 타이밍과 실행할 명령을 지정합니다.


main.py와 별도로 일정으로 실행할 파일을 추가합니다.

scheduler.py
from flask import Flask, request, abort
import os

from linebot import (
    LineBotApi, WebhookHandler
)
from linebot.exceptions import (
    InvalidSignatureError
)
from linebot.models import (
    MessageEvent, TextMessage, TextSendMessage,
)

app = Flask(__name__)

LINE_CHANNEL_ACCESS_TOKEN = os.environ["LINE_CHANNEL_ACCESS_TOKEN"]
LINE_CHANNEL_SECRET = os.environ["LINE_CHANNEL_SECRET"]
USER_ID = os.environ["USER_ID"]
line_bot_api = LineBotApi(LINE_CHANNEL_ACCESS_TOKEN)

def main():
    pushText = TextSendMessage(text="勤怠を登録しますか?")
    line_bot_api.push_message(USER_ID, messages=pushText)

if __name__ == "__main__":
    main()

응답 메시지



main.py 역시 받은 메시지에 특정한 응답이 되도록 한다.

main.py
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):

    if "勤怠" in event.message.text and "登録" in event.message.text :
        # 登録処理

        replyText = "登録しました"
        line_bot_api.reply_message(event.reply_token, TextSendMessage(text=replyText))

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

좋은 웹페이지 즐겨찾기