0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gmailが来た時にAPIを叩きたい①

Posted at

はじめに

こんにちは、エンジニアのkeitaMaxです。

今回はGmailが来た時にAPIを叩きたいということで、
毎分メールをチェックして未読メールがあればAPIを叩くという方法で実装してみようと思います。

AppScriptにコードを書く

AppScriptを使います。

AppScriptを開き、プロジェクトを作成します。
https://script.google.com/home

スクリーンショット 2025-01-30 0.07.17.png

すると以下のようにコードが入力できる画面に遷移するので

スクリーンショット 2025-01-30 0.08.25.png

以下のコードを入力します。

function checkEmails() {
  var threads = GmailApp.search("is:unread"); // 未読メールを取得
  var messages = GmailApp.getMessagesForThreads(threads);
  
  messages.forEach(thread => {
    thread.forEach(message => {
      var emailData = {
        subject: message.getSubject(),
        from: message.getFrom(),
        body: message.getPlainBody()
      };

      // 自身のサーバーのAPIを呼ぶ
      UrlFetchApp.fetch("https://{自分のAPI}", {
        method: "post",
        contentType: "application/json",
        payload: JSON.stringify(emailData)
      });

      // メールを既読にする
      message.markRead();
    });
  });
}

トリガーの設定

スクリーンショット 2025-01-30 0.09.36.png

上の画像のトリガーをクリックします。

トリガーを追加から以下のように毎分行うようにします。

スクリーンショット 2025-01-30 0.11.10.png

これで保存をし、以下のように追加されていれば成功です。

スクリーンショット 2025-01-30 0.16.55.png

おわりに

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?