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
ตัวอย่าง: เมื่อ Facebook Client Token คือ 123456789
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¶
- เพิ่ม agconnect-services.json
- เพิ่มไฟล์ agconnect-services.json ที่ดาวน์โหลดจาก Huawei console ลงในโฟลเดอร์โปรเจกต์
- กำหนดค่าโปรเจกต์ - ไฟล์ 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/'} } }
- เพิ่มปลั๊กอิน AppGallery Connect และที่อยู่ Maven
- กำหนดค่าแอป - ไฟล์ build.gradle
- เพิ่มไลบรารีการรับรองตัวตนของ Huawei และปลั๊กอิน
การกำหนดค่า 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 ระดับโมดูล
เพิ่มไลบรารีภายนอก(.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
การตั้งค่า Dependency และ Repository ของ Gradle¶
เพิ่ม Maven repository ของ DMM ใน dependencyResolutionManagement { repositories } ของ settings.gradle ที่ root เนื่องจากการประกาศ repository ใน Gradle ไม่ส่งต่อโดยอัตโนมัติ (non-transitive) หากไม่ได้ประกาศไว้ในบิลด์ของแอป การแก้ไข (resolve) DMM SDK (link-id-sdk, AuthSDK) จะล้มเหลว
การตั้งค่าข้อมูลรับรอง 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 |

