前回作成した、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))