LoginSignup
4
3

More than 3 years have passed since last update.

自分のサイトに入力された情報をLINEに通知する方法

Last updated at Posted at 2021-04-10

自分のサイトに入力フォームを設置し,ユーザーによって入力された値を使ってサーバーで何かしらの計算を行えるようにしたとき,ユーザーが使ったタイミングで通知が欲しい時があります.

今回は,WordPressで作られたサイトに入力された値を使ってPythonで計算したときにLINEに通知を入れる方法を書きます.

環境

サイト:WordPress
サーバー:mixhost
サーバーから通知:Python,LINE Notifyを使用

システム構成のイメージはこんな感じです.
image.png

WordPressに入力フォームを設置して計算ツールを作る

WordPress上に入力フォームを設置
→サーバーでPython計算
→サイトに計算結果を表示
までの流れは,以下の記事を参考にしました.

ブログ(WordPress)のフォームの入力値を使用してPythonで計算しブログにグラフを表示

同じ環境なら,同じようにできると思います.

計算が行われたら通知をLINEに送る

基本的には,LINE NotifyというサービスをPythonで使って通知を送るだけです.

トークンを取得(LINE Notify)

「LINE Notify Python」などで検索すればたくさんやり方が出てきます.
例:https://qiita.com/ken_yoshi/items/7879b3117d298a143101

(というか,この例のリンク記事だけで完結できるかもしれません)

通知を送るソースコードをPythonに書く

以下のコードをサーバーに用意すればOKです.

line_notify_bot.py (実行するPythonファイルと同じディレクトリに置く)

import requests

class LINENotifyBot:
    API_URL = 'https://notify-api.line.me/api/notify'
    def __init__(self, access_token):
        self.__headers = {'Authorization': 'Bearer ' + access_token}

    def send(
            self, message,
            image=None, sticker_package_id=None, sticker_id=None,
            ):
        payload = {
            'message': message,
            'stickerPackageId': sticker_package_id,
            'stickerId': sticker_id,
            }
        files = {}
        if image != None:
            files = {'imageFile': open(image, 'rb')}
        r = requests.post(
            LINENotifyBot.API_URL,
            headers=self.__headers,
            data=payload,
            files=files,
            )

※requestsはpipでインストールしておいてください.

実行するPythonファイル

#何かしらの計算がここに書かれている

#以下,LINE Notifyによる通知
from line_notify_bot import LINENotifyBot
bot = LINENotifyBot(access_token='取得したトークン')

bot.send(
    message='サイト上でツールが使用されました',
    #image='test.png',  # png or jpg
    sticker_package_id=11537,
    sticker_id=52002759,
    )

「取得したトークン」のところに先ほど取得したトークンをコピペしてください.

これで,サイト上で入力された値を使用してに計算が行われたとき,LINEに「サイト上でツールが使用されました」という通知がきます.

ちなみに,sticker_package_id,sticker_idのところは通知のときにスタンプを送ります.どのスタンプにするかは以下を参照.
https://developers.line.biz/en/docs/messaging-api/sticker-list/

messageに値を代入すればサイトに入力された値や計算結果をLINEに送ることができます.
また,画像を送ったりもできるようです.色々工夫すると面白いと思います.

結果

自分のサイト上のフォームに値を入力すると,こんな感じで通知が来ました.

20210410_135717.jpg

ちなみにですが,私が実行したサイト上のツールは以下です.米国株ポートフォリオを分析するために作りました.

4
3
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
4
3