Googleアドオンの申請でハマるポイント

こんにちは。  

Google Spreadsheets／Document のアドオンを開発しています。

公開申請の際にハマったので、ポイントをまとめたいと思います。

まず、審査には２種類あります。

1. 公開審査
2. OAuth確認審査

1が終わらないと公開そのものができず、２が終わらないと、『このアプリは確認されていません』のメッセージが出て、ユーザーに使ってもらうのが非常に面倒な感じになります。
<img width="603" alt="スクリーンショット 2019-05-21 17.42.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3605/1487a2ec-38e6-19cf-204f-ed5adecb46f7.png">

公開審査は、アイコンのアップロードなど、やることはありますが、比較的シンプルなのでそれほど困らないと思います。

やっかいなのは、OAuth審査です。
申請は、この画面から行います。
https://console.cloud.google.com/apis/credentials/consent

ポイントになるのは、以下の点です。

- APIスコープごとに、何に使っているのかを説明する
- Webサイトのアドレスを記述する
- プライバシーポリシー（英語）のアドレスを記述する

## OAuth確認審査の要件

審査に落ちてreject（拒否）されたとき、『ガイドラインをよく読め』という英語のメールが来ます。
ガイドラインも英語で、読めなくないけど疲れる・・ということで、軽く訳しながらまとめてみました。

↓ このページを訳しました
https://support.google.com/cloud/answer/9110914?hl=en

### ホームページの要件
* Webサイトのアドレスは、アクセス可能なドメインで、コンテンツが製品のことを正しく説明している必要があります。
* ホームページは、申し込みページを指定してはいけません。
* ホームページでは、アプリケーションがユーザーデータを使用する目的を明確にしなくてはいけません。
* ホームページでは、アプリがどのようにユーザーを便利にするのか、完全に説明しなくてはいけません。
* ホームページは、正確、包括的で、全てのユーザーが容易にアクセスできなくてはいけません。
* プライバシーポリシーは、ホームページのURLからアクセス可能で、ユーザーに見えるものでなくてはなりません。プライバシーポリシーは、アプリケーションがGoogleユーザーデータに対してアクセス、使用、保存、共有する場合について、明確に宣言しなくてはなりません。

### 確認済みドメイン

* 確認済みドメインリストに記載されたドメインは、所有権が確認されていなくてはなりません。
* プロジェクトオーナーまたはプロジェクト編集者のアカウントで申請しなくてはなりません。

### スコープ選択と説明
* スコープの要求は、必要最小限でなくてはいけません（もし要求されたスコープが、実際に使用しているスコープを超える場合は、Googleは申請を拒否するか、より適切なスコープを提案します）。
* 要求されたスコープについて、なぜこれがなくては成り立たないのか、理由を詳しく説明しなくてはなりません。例：このアプリはカレンダーAPIを、Googleカレンダーのデータをスケジューリング画面で表示するために使います。これによって、ユーザーはこのアプリで予定を立てることができ、予定はGoogleカレンダーに反映します。

### デモ動画
あなたは、YouTubeにアップロードしたデモ動画のリンクを示さなければなりません。動画は、ユーザーがOAuthの権限を許可するところから始まり、プロジェクトのOAuthクライアントそれぞれについて、制限された／取扱い注意のスコープがアプリにどう使用されているのかを示さなければなりません。

* デモ動画は、アプリの名前、OAuthクライアントIDなど、アプリの詳細を明示しなければなりません。
* デモ動画は、各OAuthクライアントについて、取扱注意の／規制対象のスコープがどう使われているか、明示しなくてはなりません。
* 動画を確認リクエストに添付することで、承認プロセスを大幅に早める事ができます。もし各OAuthクライアントIDごとのスコープの使用方法について、充分な説明がなされない場合、Googleは承認を与えません。
* これに加えて、もしも申請中のアプリのOAuthクライアントの中に、製品としてリリースする準備ができていない機能がある場合、Googleは承認を完了することができず、アプリは却下される事になります。開発中の機能は、製品のプロジェクトには含めずに、分けておく必要があります。Googleはアプリケーションを徹底的にテストします。

### セキュリティアセスメント

もしもアプリが、Googleユーザーデータを外部サーバーに送信するか、または送信できる能力を有する場合、Googleは承認プロセスにおいて、セキュリティアセスメントを受ける事を要求します。最低でも、ユーザーの要求に応じてユーザーデータを削除する機能をデモで示さなければなりません。アプリのスコープと複雑度によりますが、第三者組織によるアセスメントを受ける場合、通常\$15,000 〜$75,000程度のコストがかかります。

### 承認不要のアプリ

* ドメイン内専用のアプリ
* 個人専用のアプリ
* WordPressのGmailプラグイン
* 開発中／テスト中／ステージング中のアプリ

## 今回つまづいたポイント

１．スコープの一致
GASで書いたアプリケーション内のプロパティに、
使用しているスコープが表示される。

このスコープと、OAuth申請のスコープは、
アプリケーション内のプロパティを網羅していないとダメ。 
（サブディレクトリまでよく確認）

2.動画の作り方

アプリの動作を見せるデモ動画。

- 画面キャプチャ動画
- スタート時のURLを表示すること
- テストアカウントを用意すること
- テストアカウントを使って、アプリの認証プロセスを見せること
- アプリの動作を見せながら、『ここでどのスコープを使ったか』を字幕で表示する
- 音声は入れなくてもいい

申請却下時に受け取るメール
---

#### スコープが合ってない
<img width="607" alt="スクリーンショット 2019-06-04 10.34.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3605/14633c89-98f7-c0a4-92bd-9616f12fde47.png">

#### スコープが合ってない
<img width="618" alt="スクリーンショット 2019-06-04 10.34.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3605/28886a9f-dd4e-758b-80b3-335c17f4e9a6.png">

#### デモ動画を見せなさい
<img width="609" alt="スクリーンショット 2019-06-04 10.34.23.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3605/8d407f3c-83f6-031e-d34a-a910e74d4828.png">

#### テストアカウントを用意しなさい
<img width="599" alt="スクリーンショット 2019-06-04 10.34.34.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3605/ce51d1be-18fa-474f-c685-fc44a2201c60.png">


## 申請を終えて

ホントにしんどかった・・・
毎日夜中に却下メールをもらい、朝それを読んでがっくりし、
修正して再申請して夜を待つ日々。

アドオン申請をこれからされる方は、この記事を参考にスムーズにクリアしてください。

## 参考資料

Google Apps Script のアドオンの作成手順
https://qiita.com/takuya0206/items/06cff76e696632a2ab0f

Googleアドオンで苦労した事【備忘録】
https://affiliate-mama.com/free/googlead-on#comment-10