LoginSignup
0
1

【Python】大谷選手のホームランをリアルタイムで知らせてくれるLINE通知Botの作り方

Last updated at Posted at 2023-05-20

Pythonを使って大谷選手がホームランを打てばLINEに通知する

この記事では、大谷選手がホームランを打ったときにLINEで通知を受け取る方法を紹介します。
リアルタイムの試合データをPythonで取得し、大谷選手がホームランを打ったときだけLINEに通知を送るというプログラムを作成します。

LINE Notify API の利用準備

前回と同じく、LINE Notify APIを利用します。APIのトークンは LINE公式サイト から取得できます。

必要ライブラリのインストール

今回は、前回同様にLINE APIにHTTPリクエストを送信するためのrequestsと、
リアルタイムの試合結果を取得するためのライブラリpybaseballを利用します。

$ pip install requests pybaseball

コーディング

以下のコードは、大谷選手がホームランを打ったときにLINEに通知を送るPythonスクリプトの例です。

linebot.py
import requests
from pybaseball import playerid_lookup, statcast

def send_line_notify(notification_message):
    line_notify_token = '取得したトークンを記載'
    line_notify_api = 'https://notify-api.line.me/api/notify'
    headers = {'Authorization': f'Bearer {line_notify_token}'}
    data = {'message': f'message: {notification_message}'}
    requests.post(line_notify_api, headers=headers, data=data)

def check_hr(player_id):
    data = statcast('2023-05-01', '2023-05-30')
    player_data = data[data['batter']==player_id]
    hr_today = player_data[player_data['events']=='home_run']
    if not hr_today.empty:
        send_line_notify('大谷選手がホームランを打ちました!')

if __name__ == '__main__':
    player = playerid_lookup('ohtani', 'shohei')
    player_id = player.key_mlbam[0]
    check_hr(player_id)

このスクリプトは、指定された期間(ここでは2023年5月1日から5月30日)
の試合結果を取得し、その中で大谷選手がホームランを打った試合があるかどうかを確認します。
ホームランを打った試合があれば、LINEに通知を送ります。

まとめ

今回は、大谷選手がホームランを打った際にLINEで通知を受け取るプログラムを作成しました。
Pythonを使って試合結果を取得し、ホームランがあったときだけLINEに通知を送るという仕組みです。
なお、このスクリプトは一度だけ実行するものであり、リアルタイムに試合を監視するものではありません。
スクリプトを定期的に実行するためには、スケジューリングツール(cronなど)を利用するなどの追加の設定が必要です。

また、データの取得は一定の期間を指定して行っていますが、
具体的な期間はスクリプトを実行するタイミングによって適宜変更する必要があります。

最後に、このスクリプトはサンプルであり、実際に運用する際には適切な
エラーハンドリングやトークンの管理など、セキュリティ面の考慮が必要です。
今後も大谷選手から目が離せませんね!その活躍をPythonと共に追いかけましょう!
以上、ご訪問ありがとうございました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1