Line Messaging APIを使ったEmailやGoogleカレンダー予定の通知実装



概要

Line notifyを使った通知を今まで行っていた。(前回実装記事

  • EmailからLineへの自動通知

  • GoogleカレンダーからLineへの自動通知

    しかし2025年3月31日にLine notifyがサービスを終了するため、今回はLine Messaging APIに乗り換える。

変更部分
EmailやGoogleカレンダーの予定の検知などのトリガー部分は変更必要ない。
どちらも検知後にZapierのPythhon実行によって、Line notifyのAPIをたたいて通知を飛ばしていたためその部分を変更する。


変更前のコード

import requests
import datetime

dt_now = datetime.datetime.now()
text1 = "【email】"
text2 = input['subject']

url = "https://notify-api.line.me/api/notify"
payload = {'message': text1+ text2}
files = [

]
headers = {
  'Authorization': 'xxxxxxx'
}

response = requests.request("POST", url, headers=headers, data = payload, files = files)

print(response.text.encode('utf8'))


変更後のコード

import requests
import datetime

dt_now = datetime.datetime.now()
text1 = "【email】"
text2 = input['subject']

# LINE Messaging APIのアクセストークン
access_token = 'YOUR_ACCESS_TOKEN'  # 取得したアクセストークンを設定

# 送信するメッセージの内容
message = {
    "type": "text",
    "text": text1 + text2
}

# 送信先のユーザーIDまたはグループID
to = 'YOUR_USER_OR_GROUP_ID'  # 送信先のIDを設定

url = "https://api.line.me/v2/bot/message/push"

headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer ' + access_token
}

payload = {
    "to": to,
    "messages": [message]
}

response = requests.post(url, headers=headers, json=payload)

print(response.text)


コード作成方法

~pythonコード~
上記のpythonコードでline notifyで通知を飛ばしていたが、Line Messaging APIに切り替えたいどのように書き換えを行えばいい?

GoogleのGeminiに対して以下のような質問をしたら上記のコードが返ってきた。今回は特にGeminiが提供してくれたコードを修正する必要もなかった。

コメントアウトの補足などもユーザー指定する必要がある個所などに適切に記載されており見やすかった。


躓いた点

コードについてはGeminiにより一瞬で解決したが、
コード内に記載する変数(APIトークン、ユーザーID)の取得に少し手間取った。


Line Messaging APIのアクセストークンの発行方法

デベロッパー画面からAPIの利用はできなかった


Geminiで確認したがDeveloper画面からのAPIトークン発行方法しか回答してくれなかった。以下のサイトが公式アプリからトークン発行する方法の参考になった。

https://programming-zero.net/line-api-channel-access-token/




ユーザーIDの確認方法について

公式アカウントで発行したチャンネルIDやベーシックIDに対してAPIをリクエストしても通知が飛ばなかった。
ユーザーIDやグループIDの設定を行う必要がある

開発者は自分自身のユーザーIDをLINE Developersコンソールのチャネルの[チャネル基本設定]タブにある[あなたのユーザーID]で確認できます。

リファレンス


無料のAPI通知上限について

通知上限は無料だと200通らしい(参考

いいなと思ったら応援しよう!