見出し画像

Google Fit REST APIの利用申請について

こんにちは、いよかんです。ナビタイムジャパンでWeb版ウォーキングツールの開発を担当しています。
今回はGoogle Fit REST APIを利用して、ウォーキングツール上で歩数を取得・表示する機能を開発した経験を元にGoogle Fit REST APIの利用申請の方法実装のポイントについて記載していきたいと思います。

Google Fit APIとは

Google FitにはAndroidアプリ用のAPIとREST APIが用意されており、Google Fitと特定のアプリケーションを連携することで、歩数などの健康に関するデータをGoogle FitのプラットフォームからAPI経由で取得や保存などができます。

なぜGoogle Fit REST APIを使用するのか

当社のウォーキングツールではウォーキングルートを検索して地図上で表示する機能、ウォーキングのモデルコースを検索する機能などを提供しています。その中でも、ウォーキングをするときに一番気になることは歩数ではないでしょうか?例えばAndroidアプリで歩数を取得して表示するような機能を開発する場合、Android端末が提供するセンサー機能を利用することができるので、アプリをインストールした端末をウォーキング時に持ち歩けば歩数をカウントすることができます。しかしWebサービスという特性上、歩数をカウントするには別途機構が必要になります。そこで今回はGoogle Fit REST APIを利用して歩数取得・表示機能を開発しました。

Google Fit REST APIの実装について

まずは実装に必要なポイントを大きく二つご紹介したいと思います。

ポイント1: OAuthフローの実装

Google Fit REST APIをリクエストする時にOAuthトークンが必要です。OAuthフローのシナリオに沿ってGoogle社のOAuth認可サーバーと通信をしてアクセストークンとリフレッシュトークンの発行をします。Google社がライブラリを提供しておりOAuthフローの骨組みは用意してありますので基本的にはライブラリを導入すれば問題ないかと思います。一部アクセストークンやリフレッシュトークンの保存方法などはアプリケーション固有のビジネスロジックで実装します。

ポイント2: Google Fit REST APIのリクエストの実装

OAuthフローで取得したアクセストークンやリフレッシュトークンを使用してGoogle Fit REST APIをリクエストします。こちらについてもGoogle社がライブラリを提供していますので、基本的にはAPIに必要なパラメータを作成することでAPIリクエストを実現することができます。

Google Fit APIの利用申請について

続いて、Google Fit APIを利用開始するために必要な申請についてポイントを三つご紹介します。サービス開発時はリリース日程が決まっていることも多いと思いますが、ポイントを抑えておくことで審査をスムーズに完了することができるかも知れません。

ポイント1: アプリケーションの所有権の確認をする

Google Fit REST APIを利用するアプリケーションが申請者の所有物であることをGoogle Search Consoleを通して証明する必要があります。証明方法は複数あり選択する方法によって作業時間が変わってきます。特にDNSレコードの変更が必要な場合は事前にインフラ調整などをする時間が必要になるかも知れません。

ポイント2: 本番環境にアプリケーションを用意する

Google社が動作確認をするためにアプリケーションの提出が必要になります。そのアプリケーションはテスト環境ではなく、本番環境に用意しなければなりません。新規開発であれば問題ありませんが、すでに本番稼働しているアプリケーションの場合はリリースすると本番環境に影響が出てしまいます。本番影響を回避するための工夫が必要になりますが、開発が必要な場合もありますので事前に見積もりをしておくと良いかも知れません。

ポイント3: デモビデオの作成をする

Google Fit REST APIを使用して開発したアプリケーションが実際にどのような動作をするかをビデオにして提出します。ログイン機能があるような場合はテストアカウントの発行が必要です。またデモビデオはYouTubeを通して提出しますのでアカウントも事前に用意しておくと良さそうです。ビデオ作成時の要点としてはGoogle Cloud Platform(GCP)で発行したOAuthクライアンIDが明示されていることや利用規約・プライバシーポリシーが英語で表示されていること(英語の文章を書く必要はなくGoogle翻訳する程度で大丈夫でした。)、Google Fit REST APIを利用する目的が伝わることなどが挙げられます。

その他のポイントについては公式ドキュメントをご参考にしてください。申請をするとGoogle社からメールでフィードバックがあります。修正が必要な場合は下記のようなメールで修正事項が記載されています。

申請内容の修正が必要な場合のメール

ご参考までに実際の申請時の指摘内容と修正方法も記載します。

  • プライバシーポリシーをアプリケーションのホームページに記載すること。またプライバシーポリシーは誰でも閲覧可能な箇所に記載すること。

→アプリケーションにログイン機能があるため、ログイン前のホームページにプライバシーポリシーへのリンクを掲載しました。

  • プライバシー ポリシーにはアプリケーションが Google のユーザー データにアクセス、使用、保存、または共有する方法を明記すること。

→アプリケーションが歩数カウントのためにGoogle Fit連携をすること、ユーザーデータを保存しないことを明記しました。

  • Google Fitブランディングガイドラインに則ってGoogle Fitボタンを使用すること。

→Google Fitアイコンを使用するためには「Google Fitの説明」と、「Google Fit連携をすることで使用できる機能の説明」が必要でしたので下記の文言を追加しました。
「 Google Fit は、複数のアプリやデバイスからフィットネスデータを管理できるオープンプラットフォームです。」
「Google Fit に接続すると、歩数などのフィットネスデータを表示できます。」
「 Google Fit を接続すると、サービス上で一日単位の歩数を表示できます。」

  • Google Search Consoleでアプリケーションの所有権を証明すること。

→初回の申請時には対応できていなかったため、ポイント1の対応を追加しました。

  • デモビデオに使用するアプリケーションはテスト環境ではなく本番環境を使用すること。

→初回の申請時には補足の説明を加えてテスト環境を提出しましたが、やはり本番環境が必要でした。そのためテストアカウントでログインした時のみGoogle Fit APIを利用するような実装をしました。

  • デモビデオ内のプライバシーポリシーなどの内容を英語で表示すること。

→ブラウザの機能で英語に翻訳をすることで対応をしました。

全ての指摘事項をクリアすると下記のようなメールが送信されて無事審査が完了となります!

審査が通過した場合のメール

おわりに

Google Fit REST APIの実装方法と申請のポイントについてご紹介しました。申請方法や実装について読み込むドキュメントの量が多かったり、本番環境にアプリケーションを用意する必要があったりなどして大変な部分もありますが、これからGoogle Fit APIを使用する機会がある場合に少しでも作業内容のイメージをつかめリリースまでのリードタイムが短くなりますと幸いです。
最後までお読みいただきありがとうございました。