DMM GAMES 連携ガイド¶
アプリにDMM GAMESを連携するには、事前契約を締結する必要があります。契約締結後、以下のガイドを参照して実装してください。
アプリの実行環境に応じたDMM GAMES連携のサポート範囲は以下のとおりです。
- PC: ストアリリース向けの認証および決済機能をすべてサポートします。
- モバイル: IdPログイン認証手段の連携のみサポートします。
事前準備¶
1. DMM Developer Siteで資格情報を発行し、キー値を確認¶
- PC: DMM ClientGame Developer Siteで発行された3つのキー値を確認します。
-
モバイル: DMM資格情報を発行します。
- DMM GAMES開発者コンソールにパッケージ名、アプリ情報などのモバイルアプリ情報を先に登録した後、以下の資格情報を発行します。DMM認証はOpenSocial系とAuthSDK系の2種類の資格情報を使用します。
区分 キー 説明 OpenSocial appIdOpenSocialアプリID。makeRequestの opensocial_app_id値であり、署名検証にも使用します。OpenSocial consumerKey、consumerSecret署名用consumer資格情報。アプリ登録後、DMMコンソールで確認します。 AuthSDK clientId、clientSecret、secretKeyOAuth2ログイン資格情報。デバイス側のDMM AuthSDKが使用し、Hiveサーバーには送信されません。DMMへ別途申請して発行を受けます。 AuthSDK redirectUriOAuth2コールバックスキーム。DMMが clientIdにバインドし、申請時に併せて提供します。
2. App IDの準備¶
- App Center > App ID Management > New App IDで、OSとストアに合わせてApp IDを作成します。PC環境の場合、OSはWindows、ストアはDMM GAMESを選択します。
- App ID例: com.[会社名].[プロジェクト名].windows.dmm
3. 認証設定¶
- サービス間認証セキュリティを強化するため、Hive Console > App Center > Security Key Settingsでセキュリティキーを必ず発行してください。
- 認証設定のため、ストアキー登録およびIdP表示設定を認証 > ログイン設定で行います。
4. 決済設定¶
- 決済設定のため、ストアキー登録をBilling > Payment Settings > Store Settingsで行います。
DMMログインを実装する¶
PC実行環境連携(DMM GAME PLAYER実行環境)¶
ログイン/ログアウトを参照して実装します。
Warning
実行パラメータが存在しない場合は、アプリを実行しないでください。
DMM GAME PLAYERを経由せずに実行され、実行パラメータviewer_id、onetime_tokenが渡されない場合は、アプリを実行せず終了などで処理してください。パラメータの受け渡し方式の詳細は、DMM GAMES Developer SupportのDMM GAMES PLAYERサービス方針を参照してください。
アプリ実行環境がPC(DMM GAME PLAYER)の場合、DMMログイン連携で考慮すべき事項は以下のとおりです。
- DMM GAME PLAYERランチャーが渡す実行パラメータ
viewer_id、onetime_tokenをHive SDKが受け取り、DMMアカウントログインを処理します。別途ログインUIは表示されず、暗黙的にログインします。そのため、アプリ側でDMM実行環境向けのログインフローを別途実装せず、DMMアカウントログイン処理を連携します。 - DMMログインは、暗黙的ログインメソッド
AuthV4.Helper.signInまたはAuthV4.signIn(ProviderType.DMM)で行います。ログインに成功すると自動ログインセッションが保存され、以降はAuthV4.signIn(ProviderType.Auto)でもログインできます。ログイン結果PlayerInfoのDMM provider情報で、ユーザー識別子viewer_idベースのproviderUserIdを確認してください。 - DMM GAME PLAYERを通じて実行され、ランチャーパラメータが渡された場合、初回1回の制限なく暗黙的ログインは常にDMMアカウントで動作し、明示的ログインUIである
showSignInは使用しません。一般的なWindowsの暗黙的ログイン動作は「暗黙的ログイン動作: PC」を参照してください。 - 管理トークン
onetime_tokenは、DMMポリシーに従い90分間有効です。Hive SDKが内部で自動更新するため、別途実装する必要はありません。ただし、ネットワークが長時間切断されるなどして更新に失敗し、トークンが完全に期限切れになった場合、SDK単体では復旧できません。アプリを再起動して新しいトークンを発行してください。決済などのDMM API呼び出しには有効な管理トークンが必要です。 - DMM GAME PLAYERで実行する場合、ログアウトメソッド
signOutは使用しないでください。DMMはランチャーベースの自動ログインとして動作するため、IdP選択UIであるshowSignInも使用しません。
DMM認証は、ユーザーがWindowsでDMM GAME PLAYERを通じてアプリを実行する際に使用する認証方式です。ランチャーベースの自動ログインとして動作し、明示的ログインUIのIdP選択リストには表示されません。
モバイル実行環境連携¶
モバイルDMMログインは、Google、Appleなど他のIdPと同様にAuthV4.signIn(ProviderType.DMM)呼び出しで使用し、DMM SDKの初期化・ログイン・署名検証連携はproviderが内部で処理します。
hive_config.xmlにキーを設定¶
以下のサンプルコードを参照し、hive_config.xmlファイルのprovidersタグに値を入力します。Sandbox、商用(Service)の例のうち、使用環境のdevelopmentModeに合う
<!-- Sandbox設定 -->
<properties>
<!-- Hive SDK共通設定省略 -->
<!-- Hive SDK認証設定: START -->
<providers>
<!-- DMMでログイン (DMM) -->
<dmm appId="123456" developmentMode="sandbox" redirectUri="app-redirect-url" consumerKeySandbox="abcdefghijklmnop" consumerSecretSandbox="abcdefghijklmnopabcdefghijklmnop" />
</providers>
<!-- Hive SDK認証設定: END -->
</properties>
<!-- 商用(Service)設定 -->
<properties>
<!-- Hive SDK共通設定省略 -->
<!-- Hive SDK認証設定: START -->
<providers>
<!-- DMMでログイン (DMM) -->
<dmm appId="123456" developmentMode="service" redirectUri="app-redirect-url" consumerKey="abcdefghijklmnop" consumerSecret="abcdefghijklmnopabcdefghijklmnop" />
</providers>
<!-- Hive SDK認証設定: END -->
</properties>
hive_config.xmlキー一覧(Android、iOS)は以下のとおりです。
| キー | 値 | 必要な場合 |
|---|---|---|
| appId | アプリ識別子 | 常時 |
| developmentMode | sandboxまたはservice | 常時 |
| consumerKey | consumer key | serviceの場合 |
| consumerSecret | consumer secret | serviceの場合 |
| consumerKeySandbox | consumer key | sandboxの場合 |
| consumerSecretSandbox | consumer secret | sandboxの場合 |
| redirectUri | アプリに設定されたredirect url | 常時 |
| adult | trueまたはfalse | iOSの場合 |
secretKey、clientId、clientSecret設定に関する考慮事項は以下のとおりです。
secretKey、clientId、clientSecretの3つの設定値はsetConfigurations()APIで設定してください。setConfigurations()APIで設定した情報はランタイムメモリにのみ保持されるため、アプリ起動ごとに呼び出す必要があります。- hive_config.xmlファイルに設定値が存在しても、ランタイムで
setConfigurations()APIにより設定した値が優先適用(上書き)されます。 -
setConfigurations()APIによる機密キー値設定は、以下のサンプルコードを参照してください。
Android DMM IdP設定¶
Android IdP追加を参照してDMMログインライブラリを追加します。その後、以下の順序でAndroid DMM IdP設定を行ってください。
-
redirectUri(scheme)設定
redirect_uriはcomXXX://authのようなカスタムスキームであり、clientIdの申請時に併せて提出し、DMM認証を受けて使用する必要があります。この値はclientIdにバインドされるため、認証されていない値を使用すると、ログイン時にDMMエラーE210019 (error_redirect_uri_unavailable)が発生します。build.gradleでredirect schemeを注入します。
-
Gradle依存関係・リポジトリ設定
ルートsettings.gradleの
3. ログイン/ログアウトを参照して実装します。dependencyResolutionManagement { repositories }にDMM Mavenリポジトリを追加します。Gradleリポジトリ宣言は伝播しないため、アプリビルドで宣言されていない場合、DMM SDK(link-id-sdk、AuthSDK)の解決に失敗します。
iOS DMM IdP設定¶
iOS IdP追加を参照してDMMログインライブラリを追加します。その後、ログイン/ログアウトを参照して実装します。
DMM決済を実装する¶
DMMは、ユーザーがチャージしたDMMポイントで商品を購入する決済方式です。決済リクエストと復元フローはIAP v4の一般的な購入フローに従いますが、DMMポイント残高確認やポイントチャージ誘導などのDMM専用分岐も併せて動作します。そのため、Windows DMM環境でも既存のIAP v4フローを維持しながら、DMMポイントベースの決済条件も処理します。
実装手順¶
- Billing > IAP v4初期化を参照して実装します。
- Billing > 商品リスト照会と購入を参照して実装します。
- レシート検証を参照して実装します。
- DMMログイン開発時の考慮事項
- DMM決済は、別途決済画面UIなしですぐに確定されます。購入直後にレシートが返されないPending状態の場合、IAPV4.restoreを呼び出してレシートを再取得した後、検証と支給処理を進めてください。購入後のレシート検証と商品支給処理の全体フローは他のストアと同一です。詳細はレシート検証を参照してください。
- DMM決済API呼び出しには、有効な管理トークン
onetime_tokenが必要です。トークンの有効期間、自動更新、期限切れ時の処理などはDMMログインを参照してください。 - DMM決済も複数数量購入をサポートします。quantityパラメータを含むIAPV4.purchase(marketPid, iapPayload, quantity, onIAPV4PurchaseCB)を呼び出し、同一商品を一度に複数購入してください。
DMMポイント¶
DMMポイント残高照会¶
IAPV4.getBalanceInfoを呼び出すと、ユーザーが使用できるDMMポイント残高を照会します。購入前に事前に残高を確認したり、ショップ画面に残高を表示したりする場合に使用します。コールバックでResultAPIと整数型残高balanceを受け取ります。getBalanceInfoはPC Windows環境のDMM決済でのみ使用でき、その他のマーケットで呼び出すと未サポートのNOT_SUPPORTED結果が返されます。
呼び出しに成功すると、balanceに現在使用可能なDMMポイント残高が格納されます。呼び出しに失敗した場合は、ResultAPIで失敗原因を確認してください。
DMMポイント不足時のチャージ誘導¶
購入時にポイント残高が不足している場合、purchaseコールバックはIAPV4DmmInsufficientPointBalance結果コードを返します。この場合、アプリでDMMポイントチャージページをブラウザに表示し、チャージを案内してください。
DMMポイントチャージページURLはhttps://point.dmm.com/choice/pay?basket_service_type=freegameです。
Caution
上記のチャージページURLはDMMから提供された値であり、DMMポリシーにより変更される場合があります。最新URLおよびbasket_service_typeなどのパラメータ値はDMM側の案内を確認してください。
