PR
コンピュータ

PayPay決済通知をLINEで受け取る方法|Google Apps Script活用ガイド

はじめに

知人が無人販売を運営しており、PayPay決済の通知をLINEで受け取りたいという相談を受けました。在庫管理のため、売上があった際にリアルタイムで通知を受けたいとのことでした。

ShopifyなどのECプラットフォームには標準機能がありますが、PayPay Business単体では通知APIが提供されていません。そこで、Gmailに届く決済完了メールをトリガーとして、LINEに自動通知するシステムを構築することにしました。

この記事で学べること:

  • LINE Messaging APIの設定方法(最新版)
  • Google Apps Scriptを使ったメール監視システム
  • PayPay決済完了メールからの金額自動抽出

重要な変更点:LINE Notifyサービス終了について

従来多く使用されていた「LINE Notify」は2025年3月末でサービス終了となりました。現在は「Messaging API」を使用する必要があります。

また、以前はBot用のUser IDを取得するために専用スクリプトを作成する必要がありましたが、現在はLINE Developersの管理画面から直接確認できるようになり、設定が大幅に簡素化されています。

LINE Notify
LINE Notify allows you to send web notifications from GitHub, IFTTT, Mackerel, and more directly to your LINE chats.

システムの仕組み

PayPay決済が完了すると、以下の件名でメールが届きます: 「【PayPay】取引が完了しました」

  1. Gmail(Google Apps Script)でメール監視
  2. 対象メールを検知
  3. LINE Messaging APIでBot通知送信

LINE側の設定

Messaging APIチャネル作成

LINE Developersにアクセスし、個人アカウントでログインします。

https://developers.line.biz/
The LINE Developers site is a portal site for developers. It contains documents and tools that will help you use our var...

目的に応じたProvider名を設定してCreateします。 例: 「無人販売通知システム」

「Create a Messaging API channel」を選択

「Create A LINE Official Account」を選択

Bot用のユーザー情報を入力して作成

必要な情報を取得

そうするとMessaging API用のチャネルができているので、それをもとに情報を拾っていきます。

① User ID(Uから始まるID)

  • Basic Settingsタブの下部にある「Your user ID」をコピー

② Channel Access Token

  • Messaging APIタブの下部で「Issue」ボタンをクリックして発行
  • 発行されたトークンをコピー

Botを友達追加

Messaging APIタブにあるQRコードを読み取り、作成したBotを友達に追加しておきます。

Google Apps Script側の設定手順

Apps Scriptプロジェクト作成

メールを受けているGmailのアカウントからApps Scriptのページに行きます。

Apps Script  |  Google for Developers
Develop high-quality, cloud-based solutions with ease.

新しいプロジェクトを選択します。

ソースコードは以下です。先ほど入手したアクセストークンとIDを貼り付けしてください。
件名と決済金額部分だけを通知するようにしています。

//============== 完成版のコード ==================

function sendGmailToLine() {

  // ▼▼▼【重要】ここから3箇所を設定してください ▼▼▼

  // 1. LINE Developersの「Messaging API」タブにある「チャネルアクセストークン」を貼り付け

  const CHANNEL_ACCESS_TOKEN = ‘あなたのアクセストークン’;

  // 2. LINE Developersの「Basic settings」タブにあった、あなたの「Your user ID」を貼り付け

  const USER_ID = ‘あなたのID’;

  // 3. 検索したいGmailの条件を指定 (例: ‘subject:(重要) is:unread’)

 const SEARCH_QUERY = ‘subject:(“【PayPay】取引が完了しました”) is:unread’;

  // ▲▲▲ 設定はここまでです ▲▲▲

   // — ここから下は変更不要 —

  try {

    const threads = GmailApp.search(SEARCH_QUERY);

    if (threads.length > 0) {

      threads.forEach(thread => {

        const message = thread.getMessages()[0];

        const subject = message.getSubject();

        // — ここからが変更箇所 —

        // 1. メールの本文を取得

        const body = message.getPlainBody();

        // 2. 「〇〇円」という形式の文字列を正規表現で探す

        const amountRegex = /(\d[\d,]*)円/;

        const match = body.match(amountRegex);

        // 3. マッチした部分から金額を取得(見つからなければ「金額不明」とする)

        let amount = ‘金額不明’;

        if (match) {

          amount = match[0]; // 例: “100円” や “1,500円” のように取得

        }

        // 4. LINEに送るメッセージを組み立てる

        const lineMessage = `件名: ${subject}\n金額: ${amount}`;

        // — 変更箇所ここまで —

        const payload = {

          ‘to’: USER_ID,

          ‘messages’: [{‘type’: ‘text’, ‘text’: lineMessage}] // 組み立てたメッセージを送る

        };

        const options = {

          ‘method’: ‘post’,

          ‘contentType’: ‘application/json’,

          ‘headers’: {‘Authorization’: ‘Bearer ‘ + CHANNEL_ACCESS_TOKEN},

          ‘payload’: JSON.stringify(payload)

        };

        UrlFetchApp.fetch(‘https://api.line.me/v2/bot/message/push’, options);

        thread.markRead();

      });

    }

  } catch (e) {

    console.error(‘エラーが発生しました: ‘ + e.toString());

  }

}

初回実行時に権限確認画面が表示されます:

  1. 「実行」ボタンをクリック
  2. 「怪しいアプリ」の警告が表示される
  3. 「Advanced」→「Go to “project”」をクリック
  4. 「Allow」で権限を許可

手動テスト

テスト用に件名「【PayPay】取引が完了しました」のメールを自分宛に送信し、再度「実行」ボタンを押してBotに通知が届くか確認してください。以下のような感じで通知されます。

自動実行トリガーの設定

現在手動であったところを定期的に実行するようにします。

左側の時計マークを押して、トリガー追加を押します。

以下のように設定します:

  • 実行する関数: sendGmailToLine
  • イベントのソース: 時間主導型
  • 時間ベースのトリガー: 分
  • ベースのタイマー
  • 分の間隔: 10分おき

この設定により、10分間隔でメールチェックが実行され、PayPay決済完了メールがあれば自動的にLINE通知が送信されます。

まとめ

構築のポイント:

  • LINE Notifyサービス終了により、現在はMessaging API必須
  • User IDが管理画面から直接確認可能になり設定が簡素化
  • Google Apps Scriptの正規表現で決済金額を自動抽出

この仕組みを応用すれば、様々なメール通知をLINEで受け取るシステムが構築できます。無人販売以外にも、Webサイトのお問い合わせ通知や重要なシステムアラートなどにも活用可能です。

タイトルとURLをコピーしました