Mobile Service > IAP > Googleコンソールガイド
本文書は、Google Playでリリースしたアプリの情報をNHN Cloud IAPコンソールに登録及び連動させる方法を説明します。
Google Playでアプリをリリースするためのより詳しい内容は、Googleが提供するGoogle Play Consoleガイドを参照してください。
Googleサイト
連動に必要な情報を得るために下記のGoogleサイトを利用します。
* Google Play Console
* Google Cloud Console
* Google Developers - OAuth 2.0 Playground
基本情報入力
1. Store App ID
- Google Play登録のためにビルドしたアプリのPackage Nameで、Google Play内でアプリを識別できる固有の値です。
- アプリを登録したら、Google Play Consoleのアプリ一覧やダッシュボードなどで確認できます。
2. Google InApp Purchase License Key
- ライセンス確認のためGoogle Play Consoleに接続します。
- ホーム画面で設定するアプリを選択し、収益化設定に移動します。
- 項目のうちライセンスにあるBase64でエンコードされた内容をコピーして貼り付けます。
3. マーケット連動検証省略
- Googleの障害状況に備えたオプションで、通常はデフォルトのNOに設定してください。
- YESに設定すると、送信された決済情報の改ざん有無のみを確認し、Googleの検証を省略します。
- すべての決済に有効なわけではなく購読や再検証などには適用されません。
4. Domain authentication File Names
連動のための2つの認証方式を提供
- Google連携のためにはGoogle Cloud APIを使用する必要があり、Google Cloud APIはGoogleが提供するOAuth2.0認証が必要です。
- NHN Cloud IAPはGoogleのOAuth2.0認証のうち、クライアントID方式とサービスアカウント方式をサポートします。
- NHN Cloud IAP連動方式でクライアントIDはSUPERVISORに、サービスアカウントはSERVICE_ACCOUNTにマッピングされます。
- 二つの方式の違いは以下の通りで、詳細はGoogleのOAuth 2.0ガイドを参照してください。
[クライアントID方式]
* ユーザーに代わって認証に使うクライアントIDと認証情報を生成します。
* 認証情報を生成する過程で、実際のGoogleユーザー(開発者)の承認が必要です。
* 承認はWeb上で1回だけ行われ,生成された認証情報と承認結果をWebサイトにリターンします。
* 承認されたクライアントIDでGoogle Cloud APIを使用すると,承認したユーザーと同じ権限を持ちます。
* Google Play Consoleを作成(所有)したユーザーが認証情報を作成した場合、そのクライアントIDはGoogle Play Console内のすべてのアプリにアクセスできます。
[サービスアカウント方式]
* Google Cloud Consoleではプロジェクトのためのサービスアカウントを作成できます。サービスアカウントはGoogleメールを持つ一般ユーザーアカウントではありません。
* Google Play ConsoleではGoogle Cloud Consoleで作成したサービスアカウントを追加して使用します。
* サービスアカウントがアプリにアクセスするためには、適切な権限を付与する必要があります。
Google Cloudプロジェクト設定
- Google Playに登録されたアプリと連動するためにGoogle Cloudプロジェクトが必要です。
- 既に作られたプロジェクトがある場合は,既存のプロジェクトを使うことも可能ですが、ここではGoogle Cloudプロジェクトの作成からガイドします。
1. プロジェクト作成
- プロジェクトを作成するためGoogle Cloud Consoleにアクセスします。
- Google Play Console開発者アカウントを所有するユーザーでログインします。
- IAMおよび管理者 > プロジェクト作成を選択します。
- プロジェクト名と位置を入力し、プロジェクトを作成します。
2. プロジェクトで使うAPIを追加
- 生成したプロジェクトを選択して、API及びサービス > ライブラリメニューに移動します。
- APIライブラリで使用するAPIを選択します。Google Playに登録したアプリと連動するために次のAPIが必要です。
- Play Android Developer API
- Play Games Services Publishing API
- 該当APIを選択後、製品詳細で使用に設定します。
3. Google Cloud Consoleメニュー表示
- 設定過程でGoogle Cloud Pub/Subのように見えないメニューがある場合、製品及びソリューション > すべての製品に入るとメニュー(固定された製品)に追加できます。
SUPERVISOR連動方式設定
NHN Cloud IAPでGoogle CloudクライアントID認証を使用するためには、クライアントIDで作成したRefresh tokenが必要です。Refresh tokenの生成中はユーザーの承認プロセスがあり、そのためにGoogle CloudプロジェクトでOAuth同意画面を設定する必要があります。Google Play Consoleに登録したアプリのアクセス権限はRefresh tokenの生成を承認したユーザーの権限に従います。
1. OAuth同意画面構成
- クライアントIDを作成する前にOAuth同意画面を設定したことがない場合は、まずOAuth同意画面を設定する必要があります。
- APIおよびサービス > OAuth同意画面で、ユーザーが認証情報の生成を承認する際に表示される画面を設定します。
- Google Workspaceを使用しなかった場合、User Typeは外部のみ選択が可能です。
- 残りの構成関連設定は、画面内の詳細に沿って進めます。
2. Google CloudクライアントIDの作成
- APIおよびサービス > ユーザー認証情報で上部のユーザー認証情報の作成 > OAuthクライアントIDを選択してOAuthクライアントIDの作成ページに入ります。
- アプリケーションタイプはWebアプリケーションを選択します。
- クライアントIDを識別する名前を入力します。
- 承認されたリダイレクトURIは、先に設定したOAuth同意画面でユーザー承認後、結果を返すアドレスです。アプリケーションタイプをWebアプリケーションに設定すると、承認された認証情報(Authorization code)をWebで受け取ります。
- 別のユーザーWebアプリケーションで認証結果を受け取りたい場合は,ユーザーのWebアドレスの設定も可能です。ここではGoogle Developersサイトを利用して認証情報を確認します。
- 承認されたリダイレクトURIに
https://developers.google.com/oauthplayground
を入力します。
- 作成ボタンでOAuthクライアントを作成すると、クライアントIDとクライアントセキュリティパスワードを確認できます。
3. OAuthクライアントでRefresh token作成
- Refresh tokenを作成するためにGoogle Developers - OAuth 2.0 Playgroundに接続します。
- Step 1で認証に使用するAPIであるGoogle Play Android Developer API v3の
https://www.googleapis.com/auth/androidpublisher
を選択します。
- 右上の歯車ボタンを押してOAuth 2.0 configurationを開き、Use your own OAuth credentialsをチェックして追加入力欄が出るようにします。
- 先に作成したクライアントIDとクライアントセキュリティパスワードをOAuth Client IDとOAuth Client secretに入力します。
- Authorize APIsボタンを押してログインを進めるとOAuth同意画面メニューで設定したページに来ます。
- 進行中のログインはGoogle Play Console開発者アカウントを所有したユーザーで行います。
- 続行を押すとGoogle Developers - OAuth 2.0 PlaygroundのStep 2にリダイレクトします。
- OAuth同意画面で公開状態がテスト状態ならGoogleで確認してないアプリ画面が表示されることもあります。
- クライアントIDを生成する時、承認されたリダイレクトURIに
https://developers.google.com/oauthplayground
を入力しなかった場合、結果を受信できません。
- 正常にリダイレクトされるとStep 2でAuthorization codeを確認できます。
- ここでExchange authorization code for tokensを押してRefresh tokenとAccess tokenを発行します。
4. NHN Cloud IAPアプリでクライアント情報設定
- IAP > Appの登録または修正でGoogle Cloud ConsoleとGoogle Developsersで確認した情報を入力します。
- Google API Client ID : クライアントIDを入力
- Google API Client Secret : クライアントセキュリティパスワードを入力
- Refresh Token For Google Oauth : Google Developsers OAuth Playgroundで受信したRefresh tokenを入力
[注意]
発行されたRefresh tokenは、認証したユーザーアカウントのパスワードを変更するとすぐに失効します。もしアプリが稼働中であれば、障害が発生する可能性があります。
他にも有効期限が切れる場合がありますので、GoogleのOAuth 2.0ガイド - 更新トークンの有効期限を必ずご確認ください。
SERVICE_ACCOUNT連動方式設定
人以外のユーザーがGoogle CloudリソースにアクセスできるようにGoogle Cloud IAMでサービスアカウントを発行できます。ユーザーアカウントとの違いや運営戦略は、Google Cloud IAMドキュメントまたはGoogle Cloud認証ドキュメントを参照してください。
1. Google Cloudサービスアカウントの作成
- IAMおよび管理者 > サービスアカウントでサービスアカウントの作成をクリックするか、APIとサービス > ユーザー認証情報でユーザー認証情報の作成 > サービスアカウントを選択します。
- サービスアカウント名とサービスアカウントIDに適切な情報を入力し、作成して続行を押して次に進みます。
- その後,完了をするか、追加でサービスアカウントの管理者メールアドレスを登録できます。管理者メールアドレスを登録すると、作成中のサービスアカウントの管理権限を取得します。もし現在プロジェクトに参加していないユーザーメールであれば、招待メールが送信されます。
2. Google Cloudサービスアカウントのキー作成
- 作成されたサービスアカウントをクリックして詳細を確認します。
- キータブに移動してキーの追加 > 新しいキーの作成を選択します。
- キータイプはJSONを選択し、作成を押してキーファイルをダウンロードします。
- ダウンロードしたファイルの内容はNHN Cloud IAPアプリを設定する際に使用します。
[注意]
ダウンロードしたサービスアカウントのキーファイルは再度ダウンロードできません。紛失した場合は、キーを廃棄し、新たに作成する必要があります。
また、キーはサービスアカウントに付与したすべての権限を使用することができますので、キーのセキュリティに十分ご注意ください。
3. Google Play Consoleにサービスアカウント登録
- Google Play Consoleに接続します。
- ユーザーおよび権限で新規ユーザー招待ボタンをクリックします。
- ユーザー招待画面で作成したサービスアカウントのメールアドレスを入力します。アクセス権限の有効期限設定はチェックしません。
- 権限はサービスアカウントの下にアプリケーションを追加してアプリごとに付与することもできますし、登録するサービスアカウントに権限を付与することもできます。ここではアカウント権限で登録します。
- 範囲は顧客の意図に合わせて設定しますが、アプリ情報の表示とレポート一括ダウンロード(読み取り専用)、財務データ、注文、キャンセルアンケート回答の表示、注文と購読の管理は必ず選択する必要があります。
- 権限は設定後、反映されるまである程度の時間がかかる場合があります。場合によっては7日程度の時間がかかることもあります。
- サービスアカウントは招待後、ユーザーのメール承認プロセスなしで有効になります。
Googleの一般ユーザーアカウントもGoogle Cloudのプロジェクトに主メンバーとして登録されており、Google Play Consoleでユーザー招待と権限を付与すれば、SUPERVISOR方式のようにクライアントIDでGoogle Cloud APIアクセスが可能です。
4. NHN Cloud IAPアプリでサービスアカウント設定
- IAP > Appの登録または修正でサービスアカウント連動情報項目にダウンロードしたサービスアカウントのキーファイルの内容を入力します。
- コピーする際は、メモ帳などのテキストエディタを使用して内容全体をコピーしてください。
リアルタイム購読状態を受信するためのGoogle通知設定
Google Playで購読商品を販売する場合、NHN Cloud IAPではGoogleから通知を受け取り、購読の最新状態を管理できます。購読商品の更新は、更新時にGoogle内で自動的に行われます。このようなGoogle内で発生する購読イベントを追跡するため、Google Cloudのトピック(Topic)を使用します。トピックに関する追加内容はAndroid Developers - トピックの作成で確認できます。
1. Google Cloud通知トピックの作成
- Google Cloud Consoleに接続します。
- Pub/Subでトピックの作成をクリックします。
- トピックIDを入力し、基本購読の追加とGoogle管理暗号化キーを選択してトピックを作成します。
- Pub/Sub メニューが表示されない場合は、製品およびソリューション > すべての製品からアクセスできます。
- トピックが作成されたら、購読イベントが発生した際にトピックに掲示する掲示者を追加する必要があります。作成されたトピックを選択した後、権限タブで主メンバーの追加をクリックします。
- 新しい主メンバーには
google-play-developer-notifications@system.gserviceaccount.com
を、ロール選択には掲示/購読 > 掲示/購読掲示者を選択して保存します。
2. トピックに掲示する購読設定
- トピックを作成すると、購読メニューで該当トピックの購読が一緒に作成されたことが確認できます。
- 購読修正に移動し、送信タイプはプッシュを選択し、エンドポイントURLはNHN Cloud IAPの通知受信アドレスである
https://api-iap.cloud.toast.com/callback/subscription/{YOUR_PACKAGE_NAME}/GG
を入力します。入力時に{YOUR_PACKAGE_NAME}
は、上記のNHN Cloud IAPアプリ基本情報入力中のStore App IDと同じ値に置き換えてください。
- Gamebaseサンドボックスを使用している場合、エンドポイントURLは
https://sandbox-api-iap.cloud.toast.com/callback/subscription/{YOUR_PACKAGE_NAME}/GG
と入力します。
- すでに作成されたトピックに購読を追加したい場合は、購読の作成で購読を追加することもできます。
3. Google Play Consoleに購読 トピック 登録
- ホーム画面で通知を受けるアプリを選択し、収益化設定に入ります。
- Google Play決済項目のうちトピック 名に先に作成したトピックのトピック 名を入力します。