GmailをMakeに接続しようとしたが手間がかかりすぎて断念した話

# はじめに

https://developers.line.biz/ja/news/2024/10/07/line-notify-will-be-discontinued/

2024/10/07　LINE Notifyのサービス終了が発表されました。

自身の運営するスタジオ用LINE公式アカウントは、LINE拡張ツール《[Lステップ](https://lステップ.com/studio_k_one/ "Lステップ")》と連携していて、Lステップの基本機能としてLINE Notifyとメールに通知することができるから、本来それでいいのですが、

「やっぱりLINE Notify使えなくなってもLINEに通知したい」

と考え、通知されたメールの内容を「通知用LINE公式アカウント」に送信する、という流れをMakeで作ることにしました。

ただこれやってみてわかったんですけど、個人用のGmailをMakeに連携する場合、アプリの検証を受ける必要があってその準備が非常に**めんどくさい𖦹‎**

<font color = "red">**結論としてこの方法は なし**</font> だなということがわかりました。

#### 接続までのステップ

https://www.make.com/en/help/app/gmail

1. Gmail 用の Google Cloud Platform プロジェクトの作成と構成
1. Make の Gmail モジュールをシナリオに追加
1. Gmail を Make に接続する

ただ、「接続までのステップ」の中の「1.　Google Cloud Platform プロジェクトの作成と構成」を途中まで記事書きながらスクリーンショット撮ったりしていたので、興味のある方はお読みください。

## 前提条件
    1. 個人用Gmailアドレスを持っている
    2. Makeのアカウント作成済

## Gmail 用の Google Cloud Platform プロジェクトの作成と構成
@gmail または @googlemail で終わるメール アドレスを使用する場合はまず、Gmail 用の  [Google Cloud Platform](https://console.cloud.google.com "Google Cloud Platform") プロジェクトの作成と構成が必要です。

この手順が完了していなければ、Make側のGmailモジュールでアカウントを接続しようとすると以下のようなエラーメッセージが出てしまいますので、先にこちらを終えましょう。

:::note warn
エラー
顧客の @gmail.com アカウントでは制限されたスコープを使用できません。制限されたスコープを接続する方法の詳細については、ドキュメントをご覧ください。
:::

## プロジェクトの作成
* Google 認証情報を使用して [Google Cloud Console](https://console.cloud.google.com "Google Cloud Console") にログインします![Google Cloud：リソースの管理.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/eae8c188-d064-0eff-3e8a-2167500c4ad9.png)
* 上部のメニューで、 **[作成またはプロジェクトを選択] > [新しいプロジェクト]** をクリックします![Google Cloud Console の 画面に入って左のメニュー 「IAMと管理」＞「リソースの管理」を クリックする.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/3dac64c9-af63-91ee-2923-4f77ce04bdcc.png)
* **プロジェクト名**を入力し、プロジェクトの**場所**を選択します![使用できるのは、 英数字、単一引用符、 ハイフン、スペース、 感嘆符です.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/46ade2b0-93c9-bd33-d7ee-bc5640f5947f.png)
* [作成] をクリックします。
* 上部のメニューで、**[プロジェクトの選択]** ドロップダウンで新しいプロジェクトが選択されているかどうかを確認します。選択されていない場合は、作成したプロジェクトを選択します![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/3e1cd3b8-2e02-c06f-f809-e2b26fed624d.png)

:::note warn
新しいプロジェクトを作成したり、既存のプロジェクトで作業したりするには、serviceusage.services.enable 権限が必要です。この権限がない場合は、Google Cloud Platform のプロジェクト所有者またはプロジェクト IAM 管理者に権限を付与するよう依頼してください。
:::

## Gmail の API を有効にする
* 左側のナビゲーション メニューを開き、**[API とサービス] > [ライブラリ]** に移動します![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/f9e952b3-ff20-b077-359b-31d2b8d817cb.png)
* 次の API を検索します: **Gmail API**
* **[Gmail API]** をクリックし、**[有効にする]** をクリックします。

## Gmail の OAuth 同意画面を構成する
<details><summary><font color = "blue">OAuth（オーオース）とは？</font></summary>

>OAuthとは、Webサーバーにあるユーザーのリソースへのアクセス権限を、ユーザーの代理で行うことを許可するための認証用のプロトコルのことである。
>
>OAuthを使用することで、エンドユーザーはクライアントにユーザ名やパスワードを知らせることなく、サーバーリソースへの第三者アクセスを認可することができる。OAuthでは、ログインのために必要なユーザー名とパスワードをユーザー毎に割り当てるトークンと呼ばれる情報に置き換えて使う。このトークンを使うことで外部のサービスにはパスワードを教えることなく、システム間の情報の共有が可能になる。
>
>OAuthは、インターネット技術者たちのコミュニティで開発されてきた技術である。2007年10月に安定版が初版公開され、2010年4月にRFC 5849として情報公開された。
>▶ [weblioより](https://www.weblio.jp/content/OAuth "weblio")
</details>

* 左側のサイドバーで、左側のサイドバーで、**[Google Auth Platform]** をクリックします。出ない場合は **[API とサービス] > [OAuth 同意画面] > [新しいページへ移動]** してください。![Google Auth Platform.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/9c445a53-a6f9-890e-b2e0-2506d2a9ff51.png)

## Google Auth Platform
### [対象]セクション
* **[公開ステータス]** は **[テスト]** のまま。
* **[ユーザーの種類]** は、**[外部]** を選択。
    * **外部ユーザー**
        * 誰でも利用可能: Googleアカウントを持っている人であれば、誰でもあなたのアプリを利用できます。
        * スコープ承認: アプリが要求する情報の範囲（スコープ）によっては、ユーザーが利用を許可する必要があります。
    * **内部ユーザー**
        * 組織内のユーザー限定: あなたのアプリを特定の組織内のユーザーのみに限定して利用させたい場合に設定します。
        * 管理者の承認: 特に機密性の高い情報にアクセスする場合、組織の管理者の承認が必要になることがあります。
* **[テストユーザー]** に Gmail アドレスを追加して **[保存]** 。![1つ以上の Googleアカウント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/bf2c951a-b3a0-2601-516c-3f30bc9b7006.png)
* 最後に **[公開ステータス]** を **[アプリを公開]** にしておく。
※アプリの検証は後で行います

### [ブランディング] セクション
* **[アプリ情報]** で、アプリ名として **Make** を入力し、自身のGmail アドレスを入力します。![情報を渡すアプリの名前.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/ea400b5f-5b2b-c53e-f7ba-becd094711df.png)
* **[アプリのロゴ]** に、120 x 120 ピクセル(JPG、PNG、BMP)の正方形の画像をアップします。このロゴは、ユーザーがアプリを認識できるよう、OAuth 同意画面に表示されます。![120 x 120 ピクセル (JPG、PNG、BMP)の 正方形の画像をアップ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/2c2cf51f-00ad-b345-1d41-3a11955859f0.png)

* **[アプリのドメイン]** に以下のリンクを追加。同意画面ではこの情報がユーザーに表示されます。
    * ホームページへのリンク： `https://www.make.com`
    * 一般公開のプライバシー ポリシーへのリンク： `https://www.make.com/en/privacy-notice`
    * 一般公開の利用規約へのリンク： `https://www.make.com/en/terms-and-conditions`
* **[承認済みドメイン]** に、`make.com` と `integromat.com` を追加します。
* **[デベロッパーの連絡先情報]** で、自身のGmail アドレスを入力して **[保存]** をクリックします。![旧Makeの ドメインも入れる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/c57c2dcd-e83f-3397-321e-6552ded8f0cd.png)

### [データ アクセス] セクション
* **[スコープの追加または削除]** をクリックし、次のスコープを追加して、**[更新]** をクリックします。
    * https://mail.google.com
    * https://www.googleapis.com/auth/userinfo.email
![スコープ追加.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/ae2d96bc-6ae7-37c3-5a24-44be244b5d0a.png)
![スコープ追加2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/02ddb828-e4ba-cea5-da77-12aa4ac7debf.png)
* 追加すると制限付きのスコープにGmailのスコープが表示されるので、次の項目を入力する。![Gmailのスコープを使用するには 説明が必要になる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/95b24660-f538-c31c-66cc-496b87e8cc88.png)
    * **[どの機能を使用しますか？]**：下の４つの用途が許可されています▼
        * ユーザーがユーザー インターフェースを通じてメールの作成、送信、読み取り、処理を行うことができる、ネイティブ メール クライアントおよびウェブ メール クライアント
        * メールを自動的にバックアップするアプリケーション
        * メール利用時の生産性を向上させるアプリケーション（顧客管理、メールの遅延送信、メールの統合などのアプリケーション）
        * メールの情報を使用して、ユーザーのためにレポート サービスやモニタリング サービスを提供するアプリケーション（旅行日程の自動化アプリケーション、フライトや荷物の配達ステータスを追跡するアプリケーションなど）
    * **[スコープの使用方法]**：これらのスコープが必要である理由、これらのスコープの使用方法、より限定的なスコープでは十分でない理由を入力
* **[デモ動画: スコープの使用方法]** ：動画を作成しYouTubeにアップしたURLを入力します。この動画には以下の内容を含めます。
    * ユーザーによる OAuth 権限付与プロセス
    * プロジェクトに属する各 OAuth クライアントに対して、アプリの機能内で機密性の高いスコープや制限付きのスコープをどのように使用するかの説明
    * アプリ名や OAuth クライアント ID などの、アプリの詳細情報

:::note warn
実際はここ ⇑ **『動画を作成しYouTubeにアップ』** で断念しました。
:::

## Gmail クライアント認証情報の作成

1. 左のメニューの **[クライアント]** セクション > **[+ クライアントの作成]** をクリックします。![クライアント作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/56e43cc1-97ad-3e43-5bb3-e1c19a42b7e6.png)

1. **[OAuth クライアント ID の作成]** > ドロップダウンで、**[Web アプリケーション]** を選択します。![webアプリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/190e9a8f-b098-148c-b017-286a9926a71d.png)

1. OAuth クライアントの名前を更新します。これにより、プラットフォームでクライアントを識別しやすくなります。
1. **[承認済みリダイレクト URI]** セクションで、**[+ URI の追加]** をクリックし、次のリダイレクト URI を入力し **[作成]** をクリックします。
    * https://www.integromat.com/oauth/cb/google-restricted
![リダイレクトURI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/21deb025-eed3-96e2-e48c-bb2831239b07.png)
1. 作成した **[OAuth 2.0 クライアント ID]** をクリックし、**クライアント ID** と **クライアント シークレット** の値をコピーして、安全な場所に保存します。![クライアントID.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/97dc11ce-6366-ec16-2fc9-1e72c94f9ddc.png)

:::note info
これらの値は、Make のクライアント ID フィールドとクライアント シークレット フィールドで使用します。
:::

### 公開ステータス
:::note info
プロジェクトのステータスによって、Makeでの接続再認証の頻度が変わります。

**公開ステータス**
**テスト**: 毎週、Makeで接続の再認証が必要になります。この状態だと、プロジェクトの利用を制限される可能性があります。

**本番環境**: 毎週の再認証が不要になり、安定した接続が期待できます。Googleの認証プロセスを経て、正式な公開状態になります。

**本番環境 ステータスにするには**：
1.　**[Google Auth Platform]** の **[対象]** セクションに移動します。
2.　**[アプリを公開]** をクリックします。

**[検証が必要]** と表示された場合は、以下のいずれかを選択します。
* アプリのGoogle検証プロセスを実行: Googleの審査を通過する必要があります。
* 未検証のアプリに接続: 現在はMakeで利用可能ですが、将来利用できなくなる可能性があります。
:::

本番環境ステータスにした場合、**[データ アクセス]** セクション、**[スコープの追加または削除]** において制限付きのスコープを追加したため、<font color = "red">アプリを提出して検証作業を受ける必要があります。</font>
![検証1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/7c94ccdd-e3f1-632d-9fd0-068bf104e247.png)

## アプリの検証を受ける
ここまでの項目を全て入力してから、Googleの定めた **OAuth検証という審査を受ける必要** があります。この検証は、あなたのアプリがユーザーの情報をどのように扱うのか、その安全性や信頼性をGoogleが確認するプロセスです。

<details><summary>検証が行われる主なケース</summary>

* **アプリが一般公開されている場合**: あなたのアプリを多くの人に利用してもらうためには、この検証を通過する必要があります。
* **アプリが機密性の高い情報にアクセスする場合**: ユーザーのメールやカレンダーなど、より高度な機能を利用したい場合は、より厳格な検証が求められます。
* **アプリの設定が変更された場合**: 一度検証済みのアプリでも、設定を変更した場合に再検証が必要になることがあります。
</details>

<details><summary>検証でチェックされる主な項目</summary>

* **アプリのアイコンや名前**: ユーザーにわかりやすく、信頼感のある表示になっているか。
* **アクセスする情報の種類**: ユーザーのどの情報にアクセスしようとしているのか。
* **利用できるドメイン**: あなたのアプリが利用できるウェブサイトの数が制限を超えていないか。
* **設定の変更**: 以前の検証から設定に変更がないか。
</details>

<details><summary>審査に合格するためには</summary>

* **スコープの必要性**: なぜその情報が必要なのかを明確に説明する
* **デモ動画**: アプリの動作をわかりやすく示す
* **審査への協力**: 審査チームからの質問に誠実に回答する

ことが求められます。
</details>

<details><summary>重要なポイント</summary>

* **スコープの範囲**: 必要な範囲のスコープのみを申請する
* **ユーザーのプライバシー**: ユーザーの情報を安全に扱うための対策を講じていることを示す
* **審査期間**: 審査には時間がかかることを想定しておく
</details>

<details><summary>検証中の注意点</summary>

* **検証中は「Google未検証」表示**: 検証中は、あなたのアプリがGoogleによってまだ完全に検証されていないことを示す表示がされることがあります。
* **ユーザーへの影響**: 検証中は、一部のユーザーがあなたのアプリを利用できない場合もあります。
</details>

## Make で接続を確立する

1. Make アカウントにログインし、シナリオに Google アプリ 「Watch Emails」モジュールを追加して、**[接続の作成]** をクリックします![まずはGmailと Makeを接続する.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/b7a95c86-ad31-47e5-db3b-90f79603605c.png)
1. オプション: **[接続名]** フィールドに、接続の名前を入力します
1. **[詳細設定を表示]** トグルをオンにして、Google Cloud Console プロジェクト クライアントの認証情報を入力します![[詳細設定を表示] トグルをオン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/242b068e-347b-3ca7-afaa-4d5cfedf388b.png)

1. **[Google でログイン]** をクリックします
1. プロンプトが表示されたら、アカウントを認証してアクセスを確認します

接続が正常に確立されました。これで、シナリオを編集してモジュールを追加できます。接続の再認証が必要な場合は、ここにある[接続更新手順](https://www.make.com/en/help/connections/connecting-to-services "接続更新手順")に従ってください。


## 結局デモ動画の作成で断念
![検証3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/25f5af67-6750-13ca-b4f2-5b09d747f547.png)
![デモ動画.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904038/e6495ce7-775b-6b8c-efa7-6abec226ce10.png)

YouTube 動画には以下の内容を含めなければなりません。

* ユーザーによる OAuth 権限付与プロセスを示す
* プロジェクトに属する各 OAuth クライアントに対してアプリの機能内で機密性の高いスコープや制限付きのスコープをどのように使用するかを詳細に説明する
* アプリ名や OAuth クライアント ID などの、アプリの詳細情報を明確に示す 


## 最後に
特定のGmailをLINEに送信する。という単純なシステムに対して、動画作成は手間と時間がかかることがわかりました。

しかも、認証の申請をしてから結果が出るまでにも2～3週間かかるようです。

さくっと作りたい場合にこの方法は不向きでした。