見出し画像

Zoom App Marketplaceに自社サービスを載せるまでの道のり

Spir(スピア)という日程調整サービスを開発しています。コロナの影響もありオンラインミーティングの日程調整も増えたことから、Zoomに対応することになりました。その過程を紹介したいと思います。

画像1

TL;DR

- 審査するにはサービスを本番環境にのせる必要がある。
- サービスの説明はもちろん、利用規約、マニュアルなどすべてのドキュメントを英語で用意する必要がある。
- レビュー後のやりとりももちろん英語で行われる。担当者はとても親切でレスポンスも早い
- 最初からちゃんと用意すれば審査はスムーズに通過できる。

Zoom App Marketplace にサービスをのせる判断をするまで。

要望は以下の2つ。

1. 日程調整が確定されたタイミングでZoom MeetingのURLを発行し、確定された予定のメモに追加。
2. 予定作成時に、Zoom MeetingのURLを発行し、予定のメモに追加。

ZoomのAppにはいくつか種類があるが、上記の要望に答えるには2つの方法が考えられる。

1. JWT App: ユーザーがすでに発行されたZoom Api key, Secretを利用し、APIを利用する。

2.OAuth App: ユーザーはZoomにログインと同時にAuthCodeを取得しSpirのサーバーに送る。SpirはAuthCodeから、AccessTokenとRefreshTokenを発行しAPIを利用する。

イメージは2だったので、2の方向で進めることに。2を利用するにはZoom App Marketplaceへの申請が必須だった。

開発

API Document

はじめに Zoom App Marketplaceでアプリを作成する。種類は上に書いたようOAuth App。作成は簡単にできて開発環境ですぐ利用することができる。ただ注意点が1つある。作ったアプリは他人と共有できない。エンジニアAが作ったアプリはエンジニアAのアカウントでしか利用することができない。この制約は審査にパスしてからも同じである。Zoom Forumに質問をしたが、他のユーザーと共有する術は無い様子。

Scopeで追加したのは以下の2つ

1. /user:read: access tokenと refresh tokenを保存する際に、ZoomのAccount IDが必要だったので。
2. /meeting:write: meetingを作成するため

動作イメージ

画像2

マニュアルが充実しているので、APIの開発自体は予定どおり進められた。
わからないことがあればZoom Forumへ質問したらすぐに返信をもらえる。

審査リクエスト

大前提として、Submission Checklistに載っているすべてを揃える必要がある。

準備後審査で戸惑ったのは以下である。

1. 審査対象は本番環境のため本番にサービスをのせる必要があったが、その時点で審査が通っていないので、当然Zoom連携機能は使えない。

When we refer to the production environment, we need you to use the production version of the authorization URL.

you can make this change to your production environment, but only for the test account which you provide, so no other users see a button that does not work. Either site is fine, as long as you use the production authorization URL, our Zoom test accounts are specially whitelisted so that we can install the production version of your app before it is published on the Zoom App Marketplace.

審査担当者から、「テスト用アカウントのみ」見えるようにすればいいのではと提案をうけたのでサービスを変更した。まだSpirでは Feature Toggle機能が無かったが、これを期にFeature Toggleを入れることにした。

2. CheckListで要求しているすべてのドキュメントやページは英語である必要がある。

all app listing information (Images, descriptions) and resources (Support URL, Documentation URL, Privacy Policy) must be in English. Your service itself can be in a language other than English

As the majority of our users are English speaking, and the Zoom App Marketplace is available worldwide, we require these resources to be in English, especially because they are official legal documents that dictate what our users can expect when it comes to how you will retain their data.

当時利用規約などは英語版が用意されていなかった。それについて審査担当者に問い合わせたところ上記のような返事をもらった。簡単にまとめると

- 利用規約、プライバシーポリシーはもちろん、キャプチャの中の言葉、サポートページの言語などすべてが英語である必要がある。
- サービス自体は他の言語でも問題ない。

3. サービスをテストする手順を用意する必要がある。

これはCheckListで載ってるわけではない。審査リクエストをした後、担当者からテストプランを送ってくれとメッセージをもらった。作ったのはこのページ
何度か審査担当者とやりとりをした。返信は1日以内に受けることができた。説明も丁寧でとてもフレンドリーだった。

できました!㊗️

画像3

最後に

以上がSpirをZoom Marketplaceに載せるまでの過程です。審査リクエストをしてからわかったことが多く、その対応で時間がかかりました。Zoom アプリを開発する方々にこの記事が少しでも役に立てたら幸いです。
Spirではエンジニアとデザイナーの仲間を探しています。少しでもSpirに興味がある方はぜひ連絡ください。

Spirの採用ページお待ちしております👍🏼

この記事が気に入ったらサポートをしてみませんか?