跳轉至

Android

本指南提供了在 Hive SDK Android 中设置身份验证功能的说明。

添加功能

您需要添加与模块级 build.gradle 文件相对应的外部库。仅添加您将使用的身份验证功能。

以下是將外部庫添加到模塊級別的 build.gradle 文件的示例。

dependencies {
   // Feature-specific settings. Add only the features you are using.
    // AuthV4 Device Management
   implementation "com.com2us.android.hive:hive-authv4-device-management"
   // AuthV4 Google In-App Update
   implementation "com.com2us.android.hive:hive-authv4-google-inappupdate"
   // AuthV4 Google reCAPTCHA
   implementation "com.com2us.android.hive:hive-authv4-google-recaptcha"
   // AuthV4 Real Name Verification (China)
   implementation "com.com2us.android.hive:hive-authv4-real-name-verification"
}

添加身份提供者

將外部庫添加到模塊級別的 build.gradle 文件中。僅添加您將使用的 IdP。

以下是將外部庫添加到模組級 build.gradle 文件的示例。可以在不添加任何庫的情況下使用 訪客登錄 功能。

dependencies {
    // IdP-specific settings. Add only the IdPs you are using.

    // Apple Login
    implementation "com.com2us.android.hive:hive-authv4-provider-apple-signin"

    // Facebook Login
    implementation "com.com2us.android.hive:hive-authv4-provider-facebook"

    // Google Play Games Login
    // `hive-authv4-provider-google-playgames` includes the `play-service-games-v2` library.
    implementation "com.com2us.android.hive:hive-authv4-provider-google-playgames"

    // Google Login
    // Google Play Games Login and Google Login are different login methods.
    implementation "com.com2us.android.hive:hive-authv4-provider-google-signin"

    // Membership Login
    implementation "com.com2us.android.hive:hive-authv4-provider-hive-membership"

    // Huawei Login
    implementation "com.com2us.android.hive:hive-authv4-provider-huawei"

    // LINE Login
    // To apply the LINE library, minSdkVersion 24 or higher is required.
    implementation "com.com2us.android.hive:hive-authv4-provider-line"

    // QQ Login
    implementation "com.com2us.android.hive:hive-authv4-provider-qq"

        // Steam Login
        implementation "com.com2us.android.hive:hive-authv4-provider-steam"

    // VK library requires targetSdkVersion 32 or higher.
    implementation "com.com2us.android.hive:hive-authv4-provider-vk"

    // WeChat Login
    implementation "com.com2us.android.hive:hive-authv4-provider-wechat"

    // Weverse Login
    implementation 

        // X Login
    implementation "com.com2us.android.hive:hive-authv4-provider-x"

    // Telegram Login
    implementation "com.com2us.android.hive:hive-authv4-provider-telegram"

        // Xiaomi Login
    implementation "com.com2us.android.hive:hive-authv4-provider-xiaomi-oauth"

    // animateGO 登入
    implementation "com.com2us.android.hive:hive-authv4-provider-animatego-oauth"

    // DMM Login
    implementation "com.com2us.android.hive:hive-authv4-provider-dmm"
}

hive_config.xml中輸入每個IdP的鍵值

輸入從每個 IdP 控制台獲得的鍵值於 hive_config.xml。有關更多詳細信息,請參閱 身份驗證先決條件

由 IdP 提供的附加設定

根據身份提供者(IdP),需要額外的配置。

Google Sign-in IdP 設定

Note

從 Hive SDK 26.4.0 開始,Google 登入可選擇 Google SignIn 或 Google Credential Manager 方式。

既有基於 Play Services 函式庫的 Google 登入已於 2024 年 9 月棄用 (Deprecated),原計劃於 2025 年移除。但目前 Google 仍持續支援該函式庫。
為了穩定的服務營運,Google 建議從 Play Services 遷移至 Credential Manager

Hive SDK 同時支援 Play Services 和 Credential Manager 兩種方式。Google 確定移除 Play Services 的計劃後,我們將透過 Hive SDK 更新進行說明。

Google Play 遊戲登入 IdP 設定

要使用 Google Play 遊戲登入,請按以下方式設置。

AndroidManifest.xml 設定

這是 Google Play 服務的配置。它是 Google Play 遊戲登錄設置 的必要值。

<manifest>
    <application>
    <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/>
    </application>
</manifest>

Facebook IdP 配置

要使用 Facebook 登入,請根據以下指示配置 AndroidManifest.xml

首先,设置 FacebookContentProvider 以便在游戏应用中分享链接、图片或视频。通过将 Facebook AppID 附加到 com.facebook.app.FacebookContentProvider 作为 android:authorities 属性的值来输入 Facebook AppID。Facebook AppID 可以在 Facebook 控制台 中找到,该控制台用于注册游戏应用的应用 ID。



範例:當 FacebookAppID 為 123456789

<provider android:authorities="com.facebook.app.FacebookContentProvider123456789"
    android:name="com.facebook.FacebookContentProvider"
    android:exported="true"/>
Warning

要啟用Facebook分享,聲明FacebookContentProvider權限將防止市場特定的Android版本(例如,Google Play商店,ONE商店)同時安裝。
如果您不使用Facebook分享,請參考故障排除指南以刪除FacebookContentProvider權限的聲明。

添加 Facebook AppId 和客戶端令牌配置的設置(Facebook v13 及以上版本所需)。有關 Facebook 客戶端令牌,請參閱 Facebook 控制台 中的 應用設置 > 高級設置



範例:當 FacebookAppID 為 123456789

<meta-data
    android:name="com.facebook.sdk.ApplicationId"
    android:value="fb123456789"/>

範例:當 Facebook 客戶端令牌為 123456789

<meta-data
    android:name="com.facebook.sdk.ClientToken"
    android:value="fb123456789"/>
Note

您也可以在string.xml文件中设置Facebook AppId和客户端令牌。在这种情况下,设置android:value时不需要fb前缀。有关更多详细信息,请查看这里

QQ/WeChat IdP 配置

如果您支持 QQ 或 WeChat IdP,请申请以下附加内容。


在模組級別的build.gradle文件中設置libs文件夾的依賴。

dependencies {
   implementation fileTree(include: ['*.jar'], dir: 'libs')
   implementation fileTree(include: ['*.aar'], dir: 'libs')
}

從 SDK 發行版本的模組級 libs 資料夾(.aar/.jar) 添加外部庫。發行版本中包含的外部庫列表如下。

  • mid-sdk-2.10.jar (當支持 QQ IdP 登入時,請添加此文件)
  • mta-sdk-2.0.0.jar (當支持 QQ 或 WeChat IdP 登入時,請添加此文件)
  • open_sdk_3.5.4.11_r3f56456_lite.jar (當支持 QQ IdP 登入時,請添加此文件)

華為 IdP 配置

  1. 添加agconnect-services.json
    • 将从华为控制台下载的agconnect-services.json文件添加到项目文件夹中。
  2. 配置项目 - build.gradle 文件
    • 添加 AppGallery Connect 插件和 Maven 地址。
      buildscript {
          repositories {
              google()
              jcenter()
              // 华为 HMS Core SDK.
              maven {url 'https://developer.huawei.com/repo/'}
          }
          dependencies {
              ...
              // 华为 AppGallery Connect 插件
              classpath 'com.huawei.agconnect:agcp:1.9.1.301'
          }
      }
      allprojects {
          repositories {
              google()
              jcenter()
              /// 华为 HMS Core SDK.
              maven {url 'https://developer.huawei.com/repo/'}
          }
      }  
      
  3. 配置应用 - build.gradle 文件
    • 添加华为身份验证库和插件。
      dependencies {
          // 华为依赖
          implementation "com.com2us.android.hive:hive-authv4-provider-huawei" // 华为身份验证
      }
      apply plugin: 'com.huawei.agconnect'
      

VK IdP 配置

要使用 VK 登录,请按如下方式进行设置。

androidmanifest.xml 設定

需要的设置 VK 登录重定向

<manifest>
    <application>
        <activity
            android:name="com.hive.authv4.provider.vk.HiveProviderVkActivity"
            android:configChanges="colorMode|density|keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale|fontScale|layoutDirection"
            android:exported="true"
            android:launchMode="singleTask">

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data android:scheme="vk${vkClientId}" />
                <data android:host="vk.com" />
            </intent-filter>

        </activity>
    </application>
</manifest>

小米 IdP 配置

要使用小米登录,您需要配置从小米控制台获得的XiaomiAppId和XiaomiAppKey。

AndroidManifest.xml 設定

<meta-data
    android:name="miGameAppId"
    android:value="${xiaomiAppId}" />
<meta-data
    android:name="miGameAppKey"
    android:value="${xiaomiAppKey}" />
<!-- user OAID -->
<meta-data
    android:name="miGameEnhance"
    android:value="false" />

Settings.gradle maven 配置

maven {
    url "https://repos.xiaomi.com/maven"
    credentials {
        username 'mi-gamesdk'
        password 'AKCp8mYeLuhuaGj6bK1XK7t2w4CsPuGwg6GpQdZ9cat7K59y5sD7Tx3dHjJcFrBGj3TQ4vi7g'
    }
}

Build.gradle libs 配置

dependencies {
    // hive-china-xiaomi-wrapper-xxxxxxxx.aar 
    implementation fileTree(include: ['*.aar'], dir: 'libs')
}

animate Games Online IdP 設定

Note

animate Games Online 登入僅支援 Android 平台。

若要使用 animate Games Online 登入,請依下列方式進行設定。

hive_config.xml 設定

將 animate Games Online 登入所需的 clientId 填入 hive_config.xml。需要設定的金鑰清單請參閱 使用 animate GO 登入

Callback URL / Redirect URI 設定

若要讓 animate Games Online 登入回呼正常運作,必須在 animate Games Online 開發者主控台中註冊 Callback URL 與 Redirect URI。詳細內容請參閱 animate Games Online Callback URL / Redirect URI 設定

新增 AAR 函式庫

在模組層級的 build.gradle 檔案中設定 libs 資料夾的相依性。

dependencies {
    implementation fileTree(include: ['*.aar'], dir: 'libs')
}

將 SDK 發行版本中包含的外部函式庫(.aar)新增至模組層級的 libs 資料夾。支援 animate Games Online IdP 登入與計費功能時,需要下列檔案。

  • sdk-XXXXXXXXXXXXXXXXXXXXXXX.aar
    • 範例:sdk-bf62685719935e68ec4100c0d51aa469.aar

AndroidManifest.xml 設定

若要讓應用程式接收 animate Games Online 登入回呼,請在處理登入回呼的 Activity 的 intent-filter 中新增 host hivegame

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- 新增 host,避免收到 animateGO 登入回呼時執行選擇應用程式清單重複顯示 -->
    <data android:scheme="${applicationId}" />
    <data android:host="hive" />
    <data android:host="game" />
</intent-filter>

DMM IdP 設定

Note

Android 版 DMM 驗證會透過 DMM Games Store 應用程式將驗證資訊註冊到 DMM 伺服器後使用,並以 Hive AuthV4 的 IdP provider(hive:authv4:provider:dmm)形式提供。

Android DMM 登入與 Google、Apple 等其他 IdP 相同,皆透過呼叫 AuthV4.signIn(ProviderType.DMM) 使用,DMM SDK 的初始化、登入、簽章驗證串接皆由 provider 在內部處理。

取得 DMM 憑證

請先在 DMM GAMES 開發者主控台登錄套件名稱、應用程式資訊等 Android 應用程式資訊,然後再取得下列憑證。DMM 驗證使用 OpenSocial 系列與 AuthSDK 系列兩種憑證。

分類 金鑰 說明
OpenSocial appId OpenSocial 應用程式 ID。同時也是 makeRequest 的 opensocial_app_id 值,並用於簽章驗證
OpenSocial consumerKeyconsumerSecret 用於簽章的 consumer 憑證。註冊應用程式後可在 DMM 主控台確認
AuthSDK clientIdclientSecretsecretKey OAuth2 登入憑證。由裝置端的 DMM AuthSDK 使用,不會傳送至 Hive 伺服器。須向 DMM 另行申請後取得
AuthSDK redirectUri OAuth2 回呼 scheme。由 DMM 綁定至 clientId 後,於申請時一併提供

設定 hive_config.xml 的 DMM 區塊

將取得的憑證填入 hive_config.xml。需要設定的金鑰清單請參閱 使用 DMM 登入

設定 redirectUri(scheme)

redirect_uri 是類似 comXXX://auth 的自訂 scheme,必須在申請 clientId 時一併提交並取得 DMM 驗證後才能使用。由於此值會綁定至 clientId,若使用未經驗證的值,登入時會發生 DMM 錯誤 E210019 (error_redirect_uri_unavailable)

build.gradle 中注入 redirect scheme。

manifestPlaceholders += [hiveDmmRedirectScheme: "comXXX"]

設定 Gradle 相依性與存放庫

在根目錄 settings.gradledependencyResolutionManagement { repositories } 中新增 DMM Maven 存放庫。由於 Gradle 存放庫宣告不具傳遞性,若未在應用程式建置中宣告,將導致 DMM SDK(link-id-sdkAuthSDK)解析失敗。

maven { url 'https://repos-app.games.dmm.com/' }

在 Config Editor 中設定 Client 憑證

在 Config Editor 中指定 Client 憑證。

屬性 必要 說明
appId O 正式環境 OpenSocial 應用程式 ID
consumerKey / consumerSecret O 正式環境 consumer 簽章憑證
clientId / clientSecret / secretKey O AuthSDK OAuth2 登入憑證
redirectUri O OAuth2 redirect_uri。須與在 DMM 註冊的值相同