คู่มือการเชื่อมต่อพับลิชเชอร์ Funtap
คู่มือนี้อธิบายวิธีตั้งค่า Service Build ด้วย Hive SDK และเตรียมความพร้อมสำหรับการให้บริการจริง สำหรับแอปที่ทำสัญญาการเผยแพร่กับสโตร์ Funtap เวียดนามเสร็จสมบูรณ์แล้ว
Hive SDK จะใช้โมดูล Funtap และค่าการตั้งค่าตามประเภทบิลด์ เพื่อเชื่อมต่อ UI และ API ที่จำเป็นสำหรับหน้าจอเข้าสู่ระบบและการอัปเดตข้อมูลผู้ใช้ เมื่อใช้การตั้งค่านี้ จะสร้างบิลด์ที่สอดคล้องกับนโยบายบริการและแนวทางข้อกำหนดของภาครัฐเวียดนามได้
Note
เนื่องจากการตั้งค่าบิลด์สำหรับสโตร์เวียดนามไม่แยกบิลด์สำหรับการตรวจสอบออกจาก Service Build ฟีเจอร์การตั้งค่า Appraisal Build ที่เพิ่มใน Hive SDK v4 26.2.0 Android สำหรับการตรวจสอบการเผยแพร่ในเวียดนามจึงถูกลบออกใน 26.5.0
วิธีใช้ Service Build¶
Service Build คือบิลด์ที่ใช้ให้บริการจริงหลังจากแอป Android หรือ iOS ได้รับใบอนุญาตเผยแพร่ในเวียดนามแล้ว บิลด์นี้ใช้โมดูล Funtap สำหรับบริการจริงและการตั้งค่า token
การเตรียมการล่วงหน้า¶
ก่อนเริ่มงาน Service Build คุณต้องได้รับ token สำหรับบริการจาก Funtap ก่อน สำหรับ Native ให้ป้อนค่านี้ใน hive_config.xml และสำหรับ Unity ให้ป้อนในช่อง Funtap token ภายใต้ [แถบเครื่องมือด้านบน > Hive > HiveConfig > Optional] หากยังไม่ได้เตรียมค่านี้ จะไม่สามารถทำ Step 2 ให้เสร็จสิ้นได้
Note
คุณสามารถควบคุมได้ว่าจะแสดงการยืนยันตัวตนของ Funtap หลังจากเข้าสู่ระบบหรือไม่ใน Hive Console > Provisioning > SDK Settings
ฟีเจอร์ Service Build จะใช้หลังจากดำเนินการขั้นตอนการเข้าสู่ระบบที่ใช้ในเกมอยู่แล้วให้เสร็จสิ้นก่อน เมื่อเข้าสู่ระบบสำเร็จ ให้ใช้ PlayerID ที่ได้รับจากการตอบกลับ PlayerInfo เป็น userId สำหรับ Funtap API ในขั้นตอนถัดไป
Step 1. การตั้งค่าไลบรารี Funtap¶
ใน Native ให้เพิ่ม dependency สำหรับบริการจริงลงในไฟล์ build.gradle ระดับโมดูล
ใน Unity ให้คลิก ExternalDependency ที่ [แถบเครื่องมือด้านบน > Hive] แล้วเลือกทำเครื่องหมายที่รายการ Funtap
ใน Unreal Engine ให้เลือกช่อง Funtap ที่ [Edit > Project Settings > Hive SDK > Dependency - Android หรือ Dependency - iOS]
Step 2. การใช้ค่าการตั้งค่าของผู้เผยแพร่ Funtap (token)¶
ใน Native ให้เพิ่ม token ที่ได้รับจากผู้เผยแพร่ Funtap ลงในไฟล์ hive_config.xml
ใน Unity ให้คลิก Optional ใน [แถบเครื่องมือด้านบน > Hive > HiveConfig] แล้วป้อนคีย์ที่ออกให้ในช่อง token ของ Funtap
ใน Unreal Engine ให้ขยายรายการ Funtap ใน [Edit > Project Settings > Hive Config > Android] แล้วป้อนคีย์ที่ออกให้ในช่อง token
Step 3. การตรวจสอบว่ามีการตรวจสอบจากภาครัฐหรือไม่¶
ในการตัดสินใจว่าจะแสดงเมนูอัปเดตข้อมูลด้วยตนเองใน Service Build หรือไม่ ผู้ใช้ต้องเข้าสู่ระบบสำเร็จก่อน
หลังจากเข้าสู่ระบบเสร็จแล้ว ให้เรียก ProviderFuntap.isFuntapUnderGovernmentReview() เมื่อเข้าสู่หน้าข้อมูลตัวละครหรือหน้าการตั้งค่า เพื่อตรวจสอบว่ากำลังมีการตรวจสอบอยู่หรือไม่
- หากเมธอดส่งคืน
true(ช่วงการตรวจสอบตามข้อกำหนดภาครัฐ) - Hive SDK จะแสดงหน้าจอยืนยันตัวตนแบบ WebView โดยอัตโนมัติทันทีหลังเข้าสู่ระบบ
- ในกรณีนี้ เนื่องจากขั้นตอนการยืนยันตัวตนดำเนินการโดยอัตโนมัติ อย่าแสดง UI อัปเดตข้อมูลด้วยตนเองแยกต่างหากในเกม
- การจัดการข้อยกเว้น (
skipUpdateUserInfo) - หากค่า
skipUpdateUserInfoในไฟล์hive_config.xmlเป็นtrueหน้าจอยืนยันตัวตนจะไม่ถูกบังคับให้แสดง แม้เข้าสู่ระบบสำเร็จแล้วก็ตาม
หากผลลัพธ์เป็น false ให้ไปยัง Step ถัดไป
Step 4. การตรวจสอบว่ากรอกข้อมูลผู้ใช้ครบถ้วนหรือไม่¶
หากผลลัพธ์จาก Step 3 เป็น false คุณต้องตรวจสอบว่าผู้ใช้สามารถดำเนินการอัปเดตข้อมูลด้วยตนเองได้หรือไม่ สำหรับ userId ให้ส่ง PlayerID ที่ได้รับจากการตอบกลับ PlayerInfo หลังจากเข้าสู่ระบบสำเร็จในรูปแบบสตริง ดูรายละเอียดเกี่ยวกับค่าการตอบกลับ PlayerInfo ได้ที่ ก่อนเริ่มต้น
หากค่า isCompleted ที่ส่งกลับจากผลการเรียก ProviderFuntap.checkUserInfoComplete(userId) เป็น true แสดงว่ากรอกข้อมูลเสร็จแล้ว จึงไม่ต้องแสดง UI หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูลใน Step ถัดไป
#include "HiveProviderFuntap.h"
FString UserId = "USER_ID";
FHiveProviderFuntap::CheckUserInfoComplete(UserId, FHiveProviderFuntapOnCheckUserInfoCompleteDelegate::CreateLambda([this](const FHiveResultAPI& Result, bool bIsCompleted) {
if (Result.IsSuccess()) {
// แสดง UI อัปเดตข้อมูลหาก bIsCompleted เป็น false
}
}));
Step 5. การแสดง UI อัปเดตข้อมูล¶
หาก isCompleted เป็น false ใน Step 4 ให้แสดงเมนูที่ผู้ใช้สามารถเลือกได้ในหน้าข้อมูลตัวละครหรือหน้าการตั้งค่า เมื่อผู้ใช้เลือกเมนู ให้เรียก ProviderFuntap.showUpdateUserInfo(userId, serverId, serverName, characterId, characterName) เพื่อเปิดหน้าจออัปเดตข้อมูล ในเวลานี้ หาก skipUpdateUserInfo ในไฟล์ hive_config.xml เป็น true หน้าจอจะไม่แสดงและจะส่งคืนผลสำเร็จ
using hive;
string userId = "USER_ID";
string serverId = "SERVER_ID";
string serverName = "SERVER_NAME";
string characterId = "CHARACTER_ID";
string characterName = "CHARACTER_NAME";
ProviderFuntap.showUpdateUserInfo(userId, serverId, serverName, characterId, characterName, (ResultAPI result) => {
if (result.isSuccess()) {
// เรียก API สำเร็จ
}
});
#include "HiveProviderFuntap.h"
FString UserId = "USER_ID";
FString ServerId = "SERVER_ID";
FString ServerName = "SERVER_NAME";
FString CharacterId = "CHARACTER_ID";
FString CharacterName = "CHARACTER_NAME";
FHiveProviderFuntap::ShowUpdateUserInfo(UserId, ServerId, ServerName, CharacterId, CharacterName, FHiveProviderFuntapOnShowUpdateUserInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
if (Result.IsSuccess()) {
// เรียก API สำเร็จ
}
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
std::string userId = "USER_ID";
std::string serverId = "SERVER_ID";
std::string serverName = "SERVER_NAME";
std::string characterId = "CHARACTER_ID";
std::string characterName = "CHARACTER_NAME";
ProviderFuntap::showUpdateUserInfo(userId, serverId, serverName, characterId, characterName, [=](ResultAPI const & result) {
if (result.isSuccess()) {
// เรียก API สำเร็จ
}
});
import com.hive.ProviderFuntap
import com.hive.ResultAPI
val userId = "USER_ID"
val serverId = "SERVER_ID"
val serverName = "SERVER_NAME"
val characterId = "CHARACTER_ID"
val characterName = "CHARACTER_NAME"
ProviderFuntap.showUpdateUserInfo(userId, serverId, serverName, characterId, characterName) { result: ResultAPI ->
if (result.isSuccess) {
// เรียก API สำเร็จ
}
}
import com.hive.ProviderFuntap;
import com.hive.ResultAPI;
String userId = "USER_ID";
String serverId = "SERVER_ID";
String serverName = "SERVER_NAME";
String characterId = "CHARACTER_ID";
String characterName = "CHARACTER_NAME";
ProviderFuntap.showUpdateUserInfo(userId, serverId, serverName, characterId, characterName, (result) -> {
if (result.isSuccess()) {
// เรียก API สำเร็จ
}
});
import ProviderFuntap
let userId = "USER_ID";
let serverId = "SERVER_ID";
let serverName = "SERVER_NAME";
let characterId = "CHARACTER_ID";
let characterName = "CHARACTER_NAME";
ProviderFuntapInterface.showUpdateUserInfo(userId, serverId, serverName, characterId, characterName) { result in
if (result.isSuccess()) {
// เรียก API สำเร็จ
}
};




