Gmailに届いたメールをLINEに通知・確認できるBOTを作ってみた

はじめに

Gmailに届いたメールをリアルタイムで確認したいけれど、毎回Gmailを開くのは面倒ですよね

特に、メールを開かないことが多かったり、メールが来ても気づかないことがある方、そして基本的に連絡はLINEしか見ないという方にとっては、重要なメールを見逃してしまうこともあるかもしれません

そこで、Gmailに届いたメールをLINEに通知するBOTを作成してみました。このブログでは、その手順を詳しく解説します

必要なもの

  • Googleアカウント
  • LINEアカウント
  • Google Apps Script
  • LINE Messaging API

ステップ1: Google Apps Scriptの設定

Google Apps Scriptを開く

Googleドライブにアクセスし、「新規」→「その他」→「Google Apps Script」を選択します

スクリプトを作成

以下のコードを貼り付けます。

function checkEmails() {
    // 未読で特定の件名を持つメールスレッドを検索
    var threads = GmailApp.search('from:YOUR_EMAIL_ADDRESS is:unread'); // ここに通知したいメールの送信元アドレスを入力
    
    // 検索結果のスレッドをループ
    for (var i = 0; i < threads.length; i++) {
        // 各スレッド内のメッセージを取得
        var messages = threads[i].getMessages();
        
        // 各メッセージをループ
        for (var j = 0; j < messages.length; j++) {
            var message = messages[j];
            
            // メッセージが未読でない場合はスキップ
            if (!message.isUnread()) continue;
            
            // メールの件名を取得
            var subject = message.getSubject();
            
            // メールの本文をプレーンテキストで取得
            var body = message.getPlainBody();
            
            // LINE Messaging APIを使用して通知を送信
            sendLineMessage('YOUR_LINE_USER_ID', subject + "\n" + body); // ここに自分のLINE IDを入力
            
            // メールを既読にする
            message.markRead();
        }
    }
}

重要な設定

  • メール送信元アドレスの設定: from:YOUR_EMAIL_ADDRESS の部分を、通知したいメールの送信元アドレスに置き換えます
  • LINEユーザーIDの設定: sendLineMessage(‘YOUR_LINE_USER_ID’, …) の YOUR_LINE_USER_ID を自分のLINE IDに置き換えます。
// LINE Messaging APIを使用してメッセージを送信
function sendLineMessage(userId, messageText) {
    // LINE Messaging APIのチャネルアクセストークンを設定
    var channelAccessToken = 'YOUR_CHANNEL_ACCESS_TOKEN'; // ここに取得したアクセストークンを入力
    
    // LINE Messaging APIのエンドポイントURL
    var url = 'https://api.line.me/v2/bot/message/push';
    
    // HTTPリクエストのヘッダーを設定
    var headers = {
        'Content-Type': 'application/json', // リクエストのコンテンツタイプをJSONに設定
        'Authorization': 'Bearer ' + channelAccessToken // 認証情報を設定
    };
    
    // 送信するデータを設定
    var postData = {
        'to': userId, // メッセージを送信するユーザーのLINE ID
        'messages': [
            {
                'type': 'text', // メッセージのタイプをテキストに設定
                'text': messageText // 送信するメッセージの内容
            }
        ]
    };
    
    // HTTPリクエストのオプションを設定
    var options = {
        'method': 'post', // POSTメソッドを使用
        'headers': headers, // ヘッダーを設定
        'payload': JSON.stringify(postData) // 送信するデータをJSON文字列に変換
    };
    
    // LINE Messaging APIにメッセージを送信
    UrlFetchApp.fetch(url, options);
}

トリガー設定

スクリプトエディタの「時計」アイコンをクリックし、トリガーを設定します。「sendEmailToLine」関数を「時間主導型」で定期的に実行するように設定します

ステップ2: LINE Messaging APIの設定

LINE Developersにアクセス

LINE Developersコンソールにアクセスし、新しいプロバイダーとチャンネルを作成します

アクセストークンの取得

チャンネル設定から「Messaging API」を選択し、アクセストークンを発行します。このトークンをGoogle Apps Scriptの’YOUR_CHANNEL_ACCESS_TOKEN’に置き換えます

おわりに

これで、Gmailに届いたメールをLINEに通知するBOTが完成しました。これを活用することで、重要なメールを見逃すことなく、効率的に管理することができます。ぜひ試してみてください!

コメント

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