ข้ามไปที่เนื้อหา

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"
}

เพิ่ม IdPs

เพิ่มไลบรารีภายนอกลงในไฟล์ 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 "com.com2us.android.hive:hive-authv4-provider-weverse"

        // 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 Login
    implementation "com.com2us.android.hive:hive-authv4-provider-animatego-oauth"

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

ป้อนค่าคีย์สำหรับแต่ละ IdP ใน hive_config.xml

ป้อนค่าคีย์ที่ได้รับจากคอนโซล IdP แต่ละตัวใน hive_config.xml สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ ข้อกำหนดเบื้องต้นสำหรับการตรวจสอบสิทธิ์

การตั้งค่าเพิ่มเติมโดย IdP

ต้องการการกำหนดค่าที่เพิ่มเติมขึ้นอยู่กับ IdP.

การตั้งค่า IdP สำหรับ Google Sign-in

Note

ตั้งแต่ Hive SDK 26.4.0 เป็นต้นไป คุณสามารถเลือกวิธี Google SignIn หรือ Google Credential Manager สำหรับการเข้าสู่ระบบ Google ได้

  • hive-authv4-provider-google-signin: จัดการการเข้าสู่ระบบ Google โดยใช้ ไลบรารี Play Services
  • hive-authv4-provider-google-credential-signin: จัดการการเข้าสู่ระบบ Google โดยใช้ ไลบรารี Credential Manager
    • ต้องใช้ Gradle 8.x ขึ้นไป

การเข้าสู่ระบบ Google เดิมที่ใช้ไลบรารี Play Services ถูกประกาศเลิกใช้งาน (Deprecated) ตั้งแต่เดือนกันยายน 2024 และเดิมมีกำหนดถูกนำออกในปี 2025 อย่างไรก็ตาม ปัจจุบัน Google ยังรองรับไลบรารีนี้ต่อไป
เพื่อการให้บริการที่เสถียร Google แนะนำให้ ย้ายไปใช้ Credential Manager แทน Play Services

Hive SDK รองรับทั้ง Play Services และ Credential Manager และเมื่อ Google ยืนยันแผนการนำ Play Services ออก เราจะแจ้งผ่านการอัปเดต Hive SDK

การตั้งค่า IdP สำหรับการลงชื่อเข้าใช้ Google Play Games

ในการใช้การเข้าสู่ระบบ Google Play Games ให้ตั้งค่าดังนี้

AndroidManifest.xml การตั้งค่า

นี่คือการตั้งค่าสำหรับ Google Play Services ซึ่งเป็นค่าที่จำเป็นสำหรับ การตั้งค่าเข้าสู่ระบบ Google Play Games .

<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 สามารถพบได้ใน ID แอปสำหรับแอปเกมที่ลงทะเบียนใน Facebook console



ตัวอย่าง: เมื่อ FacebookAppID คือ 123456789

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

เพื่อเปิดใช้งาน การแชร์ Facebook การประกาศสิทธิ์ FacebookContentProvider จะป้องกันไม่ให้มีการติดตั้งแอป Android ที่เฉพาะเจาะจงกับตลาดพร้อมกัน (เช่น Google Play Store, ONE Store).
หากคุณไม่ได้ใช้การแชร์ Facebook โปรดดูที่ คู่มือการแก้ไขปัญหา เพื่อลบการประกาศสิทธิ์ FacebookContentProvider.

เพิ่มการตั้งค่าสำหรับ Facebook AppId และการกำหนดค่า client token (จำเป็นสำหรับ Facebook v13 และสูงกว่า) สำหรับ client token ของ Facebook ให้ดูที่ การตั้งค่าแอป > การตั้งค่าขั้นสูง ใน Facebook console



ตัวอย่าง: เมื่อ FacebookAppID คือ 123456789

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

ตัวอย่าง: เมื่อ Facebook Client Token คือ 123456789

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

คุณยังสามารถตั้งค่า Facebook AppId และ client token ในไฟล์ string.xml ได้ ในกรณีนี้ ไม่จำเป็นต้องใช้ fb prefix เมื่อกำหนด android:value สำหรับรายละเอียดเพิ่มเติม โปรดตรวจสอบ ที่นี่.

การกำหนดค่า QQ/WeChat IdP

หากคุณสนับสนุน QQ หรือ WeChat IdP โปรดสมัครเนื้อหาเพิ่มเติมดังต่อไปนี้


ตั้งค่าการพึ่งพาสำหรับโฟลเดอร์ libs ในไฟล์ build.gradle ระดับโมดูล

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)

การกำหนดค่าของ Huawei IdP

  1. เพิ่ม agconnect-services.json
    • เพิ่มไฟล์ agconnect-services.json ที่ดาวน์โหลดจาก Huawei console ลงในโฟลเดอร์โปรเจกต์
  2. กำหนดค่าโปรเจกต์ - ไฟล์ build.gradle
    • เพิ่มปลั๊กอิน AppGallery Connect และที่อยู่ Maven
      buildscript {
          repositories {
              google()
              jcenter()
              // Huawei HMS Core SDK.
              maven {url 'https://developer.huawei.com/repo/'}
          }
          dependencies {
              ...
              // Huawei AppGallery Connect plugin
              classpath 'com.huawei.agconnect:agcp:1.9.1.301'
          }
      }
      allprojects {
          repositories {
              google()
              jcenter()
              /// Huawei HMS Core SDK.
              maven {url 'https://developer.huawei.com/repo/'}
          }
      }  
      
  3. กำหนดค่าแอป - ไฟล์ build.gradle
    • เพิ่มไลบรารีการรับรองตัวตนของ Huawei และปลั๊กอิน
      dependencies {
          // Huawei Dependency
          implementation "com.com2us.android.hive:hive-authv4-provider-huawei" // Huawei authentication
      }
      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>

การกำหนดค่า Xiaomi IdP

ในการใช้การเข้าสู่ระบบ Xiaomi คุณต้องกำหนดค่า XiaomiAppId และ XiaomiAppKey ที่ได้รับจากคอนโซล Xiaomi

การตั้งค่า 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 {
    url "https://repos.xiaomi.com/maven"
    credentials {
        username 'mi-gamesdk'
        password 'AKCp8mYeLuhuaGj6bK1XK7t2w4CsPuGwg6GpQdZ9cat7K59y5sD7Tx3dHjJcFrBGj3TQ4vi7g'
    }
}

การกำหนดค่าห้องสมุด Build.gradle

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

การกำหนดค่า IdP animate Games Online

Note

การเข้าสู่ระบบด้วย animate Games Online รองรับเฉพาะแพลตฟอร์ม Android เท่านั้น

หากต้องการใช้การเข้าสู่ระบบด้วย animate Games Online ให้กำหนดค่าดังนี้

การกำหนดค่า hive_config.xml

กรอก clientId ที่จำเป็นสำหรับการเข้าสู่ระบบด้วย animate Games Online ลงใน hive_config.xml สำหรับรายการคีย์ที่ต้องตั้งค่า โปรดดูที่ เข้าสู่ระบบด้วย animate GO

การกำหนดค่า Callback URL / Redirect URI

หากต้องการให้ Callback ของการเข้าสู่ระบบด้วย animate Games Online ทำงานได้อย่างถูกต้อง คุณต้องลงทะเบียน Callback URL และ Redirect URI ใน Developer Dashboard ของ animate Games Online สำหรับรายละเอียดเพิ่มเติม โปรดดูที่ การกำหนดค่า Callback URL / Redirect URI ของ animate Games Online

การเพิ่มไลบรารี AAR

กำหนด dependency ของโฟลเดอร์ libs ในไฟล์ build.gradle ระดับโมดูล

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

เพิ่มไลบรารีภายนอก(.aar) ที่รวมอยู่ในเวอร์ชันที่เผยแพร่ของ SDK ลงในโฟลเดอร์ libs ระดับโมดูล ไฟล์ด้านล่างนี้จำเป็นสำหรับการรองรับการเข้าสู่ระบบและการชำระเงินผ่าน animate Games Online IdP

  • sdk-XXXXXXXXXXXXXXXXXXXXXXX.aar
    • ตัวอย่าง: sdk-bf62685719935e68ec4100c0d51aa469.aar

การกำหนดค่า AndroidManifest.xml

หากต้องการให้แอปรับ Callback การเข้าสู่ระบบด้วย animate Games Online ให้เพิ่ม host hive และ game ลงใน intent-filter ของ Activity ที่จัดการ Callback การเข้าสู่ระบบ

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <!-- เพิ่ม host เพื่อป้องกันการแสดงซ้ำซ้อนในรายการแอปให้เลือกเปิด เมื่อได้รับ Callback การเข้าสู่ระบบ animateGO -->
    <data android:scheme="${applicationId}" />
    <data android:host="hive" />
    <data android:host="game" />
</intent-filter>

การกำหนดค่า DMM IdP

Note

การตรวจสอบสิทธิ์ DMM สำหรับ Android จะลงทะเบียนข้อมูลการตรวจสอบสิทธิ์ไปยังเซิร์ฟเวอร์ DMM ผ่านแอป DMM Games Store และให้บริการในรูปแบบ IdP provider ของ Hive AuthV4 (hive:authv4:provider:dmm)

การเข้าสู่ระบบด้วย DMM บน Android ใช้งานผ่านการเรียก AuthV4.signIn(ProviderType.DMM) เช่นเดียวกับ IdP อื่น ๆ เช่น Google, Apple โดย provider จะจัดการการเริ่มต้น DMM SDK การเข้าสู่ระบบ และการเชื่อมโยงตรวจสอบลายเซ็นภายในให้โดยอัตโนมัติ

การขอรับข้อมูลรับรอง DMM

ก่อนอื่น ให้ลงทะเบียนข้อมูลแอป Android เช่น ชื่อแพ็กเกจและข้อมูลแอปใน DMM GAMES Developer Console จากนั้นขอรับข้อมูลรับรองตามรายการด้านล่าง การตรวจสอบสิทธิ์ DMM ใช้ข้อมูลรับรองสองประเภท ได้แก่ ประเภท OpenSocial และประเภท AuthSDK

ประเภท คีย์ คำอธิบาย
OpenSocial appId OpenSocial App ID ใช้เป็นค่า opensocial_app_id ใน makeRequest และใช้ในการตรวจสอบลายเซ็น
OpenSocial consumerKey, consumerSecret ข้อมูลรับรอง consumer สำหรับการเซ็นชื่อ ตรวจสอบได้ใน DMM Console หลังลงทะเบียนแอป
AuthSDK clientId, clientSecret, secretKey ข้อมูลรับรองการเข้าสู่ระบบ OAuth2 ใช้งานฝั่งอุปกรณ์โดย DMM AuthSDK และไม่ถูกส่งไปยังเซิร์ฟเวอร์ Hive ต้องยื่นคำขอแยกกับ DMM ก่อนจึงจะได้รับ
AuthSDK redirectUri Scheme สำหรับ callback ของ OAuth2 DMM จะผูก (bind) ค่านี้กับ clientId และมอบให้พร้อมกันเมื่อยื่นคำขอ

การตั้งค่าบล็อก DMM ใน hive_config.xml

กรอกข้อมูลรับรองที่ได้รับลงใน hive_config.xml สำหรับรายการคีย์ที่ต้องตั้งค่า โปรดดูที่ เข้าสู่ระบบด้วย DMM

การตั้งค่า redirectUri (scheme)

redirect_uri เป็น custom scheme ในรูปแบบเช่น comXXX://auth ซึ่งต้องยื่นพร้อมกับคำขอ clientId และผ่านการรับรองจาก DMM ก่อนจึงจะใช้งานได้ เนื่องจากค่านี้ถูกผูก (bind) กับ clientId หากใช้ค่าที่ไม่ผ่านการรับรอง จะเกิดข้อผิดพลาด DMM E210019 (error_redirect_uri_unavailable) เมื่อเข้าสู่ระบบ

กำหนดค่า redirect scheme ใน build.gradle

manifestPlaceholders += [hiveDmmRedirectScheme: "comXXX"]

การตั้งค่า Dependency และ Repository ของ Gradle

เพิ่ม Maven repository ของ DMM ใน dependencyResolutionManagement { repositories } ของ settings.gradle ที่ root เนื่องจากการประกาศ repository ใน Gradle ไม่ส่งต่อโดยอัตโนมัติ (non-transitive) หากไม่ได้ประกาศไว้ในบิลด์ของแอป การแก้ไข (resolve) DMM SDK (link-id-sdk, AuthSDK) จะล้มเหลว

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

การตั้งค่าข้อมูลรับรอง Client ใน Config Editor

ระบุข้อมูลรับรอง Client ใน Config Editor

แอตทริบิวต์ จำเป็น คำอธิบาย
appId O OpenSocial App ID สำหรับใช้งานจริง (Service)
consumerKey / consumerSecret O ข้อมูลรับรองลายเซ็น consumer สำหรับใช้งานจริง (Service)
clientId / clientSecret / secretKey O ข้อมูลรับรองการเข้าสู่ระบบ OAuth2 ของ AuthSDK
redirectUri O redirect_uri ของ OAuth2 ต้องตรงกับค่าที่ลงทะเบียนไว้กับ DMM