LINE Notify APIを使ってPythonからメッセージ送信(過去記事)

目次

今回やりたいこと

LINE Notify APIでLINEメッセージを送る

全体の流れ

1.アクセストークンの発行

まずはアクセストークンを発行。

  1. LINE Notifyにアクセスし自身のLINEアカウントでログインする
  2. 右上のメニューからマイページにアクセスし、「トークンを発行する」へ進む
  3. 通知名と宛先(自分自身か特定のグループ)を選択してトークンを発行する。

2.簡単なメッセージを送ってみる

簡単なメッセージを送るだけなら数行で可能
以下のコードの例では「Test Notify」というメッセージが送られてくる

import requests

url = "https://notify-api.line.me/api/notify"

# トークンのセット
access_token = '発行したトークン'
headers = {'Authorization': 'Bearer ' + access_token}

# メッセージの設定
message = 'Test Notify'
payload = {'message': message}

# リクエストの送信
requests.post(url, headers=headers, data=payload)

3.最高気温と最低気温を通知してみる

せっかくだからもう少し使えそうなことをしてみる
今回は札幌市の気温をyahooから取得してきてそれを通知してみることにした
情報の取得はBeautifulSoupを用いたスクレイピング

from bs4 import BeautifulSoup
import requests


class weather:
    def __init__(self):
        self.url = 'https://weather.yahoo.co.jp/weather/jp/1b/1400.html'

    def get_temperature(self):
        html = requests.get(self.url)
        soup = BeautifulSoup(html.content, "html.parser")

        temperature = soup.find_all('li', class_=['high', 'low'], limit=2)
        temperature = [i.text for i in temperature]

        return ('\n最高気温[前日との差]:' + temperature[0] +
                '\n最低気温[前日との差]:' + temperature[1])

テストメッセージの代わりに気温情報を渡す。

# message = 'Test Notify'

weather = weather()
message = weather.get_temperature()
payload = {'message': message}

実際に来るLINE通知

まとめ

LINE Notify APIでライン通知を送ってみました。
今回作ったものをサーバーで動かせば、毎朝その日の気温を通知なんてことも簡単そう

目次