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

คู่มือการเชื่อมต่อพับลิชเชอร์ Funtap

ภาพรวม

คู่มือการเชื่อมต่อ Software Development Kit(SDK) ของผู้เผยแพร่ Funtap อธิบายวิธีนำ SDK นี้ไปใช้กับแอปหลังจากเสร็จสิ้นสัญญาการเผยแพร่กับ Funtap เพื่อจัดเตรียม Appraisal Build สำหรับการพิจารณาใบอนุญาตเผยแพร่ในเวียดนาม และ Service Build สำหรับให้บริการจริง Hive SDK จะเชื่อมต่อ User Interface(UI) และ Application Programming Interface(API) ที่จำเป็นสำหรับหน้าจอเข้าสู่ระบบและฟังก์ชันอัปเดตข้อมูลผู้ใช้ โดยใช้โมดูล Funtap และค่าการตั้งค่าที่แตกต่างกันตามประเภทบิลด์ เมื่อใช้การตั้งค่านี้ คุณจะสามารถเตรียมบิลด์ที่สอดคล้องกับนโยบายการให้บริการและข้อกำหนดของภาครัฐเวียดนามได้.

วิธีใช้ Appraisal Build

Appraisal Build คือบิลด์ที่แอป Android ใช้ส่งเพื่อการพิจารณาใบอนุญาตเผยแพร่ในเวียดนาม ในบิลด์นี้ ฟังก์ชันเข้าสู่ระบบของ Funtap ต้องทำงานได้อย่างปกติ.

การเตรียมการล่วงหน้า

ก่อนเริ่มการทำ Appraisal Build คุณต้องได้รับ appKey สำหรับการพิจารณาจาก Funtap ก่อน สำหรับ Native ให้ป้อนค่านี้ใน hive_config.xml และสำหรับ Unity ให้ป้อนในรายการ Funtap appKey ของ [แถบเครื่องมือด้านบน > Hive > HiveConfig > Optional] หากยังไม่ได้เตรียมค่า จะไม่สามารถทำ Step 3 ให้เสร็จสิ้นได้

Step 1. การตั้งค่าไลบรารี Funtap-Appraisal

ใน Native ให้เพิ่ม dependency สำหรับ Appraisal ลงในไฟล์ build.gradle ระดับโมดูล.

// โมดูล Funtap Appraisal
implementation "com.com2us.android.hive:hive-authv4-provider-funtap-appraisal"

ใน Unity ให้คลิก ExternalDependency ที่ [แถบเครื่องมือด้านบน > Hive] แล้วเลือกทำเครื่องหมายที่รายการ Funtap-Appraisal

ใน Unreal Engine ให้ทำเครื่องหมายที่รายการ Funtap-Appraisal ใน [Edit > Project Settings > Hive SDK > Dependency - Android]

Step 2. การตั้งค่าสิทธิ์ของไลบรารี Funtap-Appraisal

เพื่อเชื่อมต่อไลบรารี Funtap-Appraisal ให้เพิ่มการตั้งค่าสิทธิ์ต่อไปนี้ในไฟล์ AndroidManifest.xml

ใน Native ให้เพิ่มสิทธิ์ในไฟล์ AndroidManifest.xml ระดับโมดูล

  • <project>/app/src/main/AndroidManifest.xml

ใน Unity ให้เพิ่มสิทธิ์ในไฟล์ AndroidManifest.xml ที่เส้นทาง Plugins/Android

  • <project>/Assets/Plugins/Android/AndroidManifest.xml

ใน Unreal Engine ให้เพิ่มสิทธิ์ในไฟล์ HiveSDKAndroid_UPL.xml ที่เส้นทาง Plugins/HIVESDK/Source/HiveSDKAndroid

  • <project>/Assets/Plugins/HIVESDK/Source/HiveSDKAndroid/HiveSDKAndroid_UPL.xml

เพิ่มสิทธิ์ด้านล่างนี้.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

Step 3. การใช้ค่าการตั้งค่าของผู้เผยแพร่ Funtap (appKey)

ใน Native ให้เพิ่ม appKey ที่ได้รับจากผู้เผยแพร่ Funtap ลงในไฟล์ hive_config.xml.

<funtap-appraisal appKey="YOUR_APP_KEY" />

ใน Unity ให้คลิก Optional ใน [แถบเครื่องมือด้านบน > Hive > HiveConfig] แล้วป้อนคีย์ที่ออกให้ในรายการ appKey ของ Funtap

ใน Unreal Engine ให้ขยายรายการ FuntapAppraisal ใน [Edit > Project Settings > Hive Config > Android] แล้วป้อนคีย์ที่ออกให้ในรายการ appKey

Step 4. การตรวจสอบการทำงานของการเข้าสู่ระบบ Funtap

ใน Appraisal Build ให้เรียกการเข้าสู่ระบบ Funtap เพื่อตรวจสอบว่าหน้าจอเข้าสู่ระบบแสดงอย่างถูกต้องและสามารถเข้าสู่ระบบได้สำเร็จ. Hive SDK ฝัง Funtap SDK ไว้ภายใน และใช้ ProviderType.FUNTAP เมื่อเรียก AuthV4.signIn(). เมื่อเข้าสู่ระบบสำเร็จ กระบวนการถัดไปที่จำเป็นสำหรับการเชื่อมต่อกับผู้เผยแพร่จะดำเนินการโดยอัตโนมัติภายใน Funtap SDK.

Caution

ใช้การเข้าสู่ระบบ ProviderType.FUNTAP เฉพาะใน Appraisal Build เท่านั้น. ใน Service Build จะไม่ใช้ประเภทการเข้าสู่ระบบนี้.

using hive;

AuthV4.signIn(AuthV4.ProviderType.FUNTAP, (ResultAPI result, AuthV4.PlayerInfo playerInfo) => {
    if (result.isSuccess()) {
        // เข้าสู่ระบบ ProviderType FUNTAP สำเร็จ
    }
});
#include "HiveAuthV4.h"

FHiveAuthV4::SignIn(EHiveProviderType::FUNTAP,
                    FHiveAuthV4OnSignInDelegate::CreateLambda([this](const FHiveResultAPI& Result, const FHivePlayerInfo& PlayerInfo) {

    if (Result.IsSuccess()) {
        // ล็อกอิน ProviderType FUNTAP สำเร็จ
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

AuthV4::signIn(ProviderType::FUNTAP, [=](ResultAPI const & result, PlayerInfo const & playerInfo) {
    if (result.isSuccess()) {
        // เข้าสู่ระบบ ProviderType FUNTAP สำเร็จ
    }
});
import com.hive.AuthV4
import com.hive.ResultAPI

AuthV4.signIn(AuthV4.ProviderType.FUNTAP, object : AuthV4.AuthV4SignInListener {
    override fun onAuthV4SignIn(result: ResultAPI, playerInfo: AuthV4.PlayerInfo?) {
        if (result.isSuccess) {
            // เข้าสู่ระบบ ProviderType FUNTAP สำเร็จ
        }
    }
})
import com.hive.AuthV4;
import com.hive.ResultAPI;

AuthV4.signIn(AuthV4.ProviderType.FUNTAP, (result, playerInfo) -> {
    if (result.isSuccess()) {
        // เข้าสู่ระบบ ProviderType FUNTAP สำเร็จ
    }
});

วิธีใช้ 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

Hive Console > Provisioning > SDK Settings คุณสามารถควบคุมได้ว่าจะให้แสดงการยืนยันตัวตนของ Funtap หลังจากเข้าสู่ระบบหรือไม่.

ฟังก์ชัน Service Build จะใช้งานหลังจากเกมดำเนินขั้นตอนการเข้าสู่ระบบที่มีอยู่เดิมให้เสร็จก่อน. เมื่อเข้าสู่ระบบสำเร็จ ให้ใช้ PlayerID ที่ได้รับจากการตอบกลับ PlayerInfo เป็น userId ของ Funtap API ในขั้นตอนถัดไป.

Step 1. การตั้งค่าไลบรารี Funtap

ใน Native ให้เพิ่ม dependency สำหรับบริการจริงลงในไฟล์ build.gradle ระดับโมดูล.

// โมดูล Funtap Service
implementation "com.com2us.android.hive:hive-authv4-provider-funtap"

ใน 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.

<funtap token="YOUR_TOKEN" />

ใน 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 อัปเดตข้อมูลด้วยตนเองแยกต่างหาก ในเวลานี้ หากค่า skipUseUserCheck ในไฟล์ hive_config.xml เป็น true ระบบจะไม่แสดงหน้าการยืนยันตัวตนแม้ล็อกอินสำเร็จ.

ตัวอย่างหน้าต่างป๊อปอัปยืนยันตัวตน

หากผลลัพธ์เป็น false ให้ไปยัง step ถัดไป.

using hive;

bool result = ProviderFuntap.isFuntapUnderGovernmentReview();
#include "HiveProviderFuntap.h"

bool bResult = FHiveProviderFuntap::IsFunTapUnderGovernmentReview();
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

bool result = ProviderFuntap::isFuntapUnderGovernmentReview();
import com.hive.ProviderFuntap

val result = ProviderFuntap.isFuntapUnderGovernmentReview()
import com.hive.ProviderFuntap;

boolean result = ProviderFuntap.isFuntapUnderGovernmentReview();
import ProviderFuntap

let result = ProviderFuntapInterface.isFuntapUnderGovernmentReview();

Step 4. การตรวจสอบว่ากรอกข้อมูลผู้ใช้ครบถ้วนหรือไม่

หากผลลัพธ์ของ Step 3 เป็น false ต้องพิจารณาว่าผู้ใช้สามารถดำเนินการอัปเดตข้อมูลด้วยตนเองได้หรือไม่. สำหรับ userId ให้ส่ง PlayerID ที่ได้รับจากการตอบกลับ PlayerInfo หลังจากเข้าสู่ระบบสำเร็จในรูปแบบสตริง. รายละเอียดเพิ่มเติมเกี่ยวกับค่าตอบกลับ PlayerInfo โปรดดู ก่อนเริ่มต้น.

หากค่า isCompleted ที่ส่งกลับจากผลการเรียก ProviderFuntap.checkUserInfoComplete(userId) เป็น true แสดงว่ากรอกข้อมูลเสร็จแล้ว จึงไม่ต้องแสดง UI. หากค่า isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูลในขั้นตอนถัดไป.

using hive;

string userId = "USER_ID";

ProviderFuntap.checkUserInfoComplete(userId, (ResultAPI result, bool isCompleted) => {
    if (result.isSuccess()) {
        // หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูล
    }
});
#include "HiveProviderFuntap.h"

FString UserId = "USER_ID";

FHiveProviderFuntap::CheckUserInfoComplete(UserId, FHiveProviderFuntapOnCheckUserInfoCompleteDelegate::CreateLambda([this](const FHiveResultAPI& Result, bool bIsCompleted) {
    if (Result.IsSuccess()) {
        // หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูล
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

std::string userId = "USER_ID";

ProviderFuntap::checkUserInfoComplete(userId, [=](ResultAPI const & result, bool isCompleted) {
    if (result.isSuccess()) {
        // หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูล
    }
});
import com.hive.ProviderFuntap
import com.hive.ResultAPI

val userId = "USER_ID"

ProviderFuntap.checkUserInfoComplete(userId) { result: ResultAPI, isCompleted: Boolean ->
    if (result.isSuccess) {
        // หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูล
    }
}
import com.hive.ProviderFuntap;
import com.hive.ResultAPI;

String userId = "USER_ID";

ProviderFuntap.checkUserInfoComplete(userId, (result, isCompleted) -> {
    if (result.isSuccess()) {
        // หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูล
    }
});
import ProviderFuntap

let userId = "USER_ID";

ProviderFuntapInterface.checkUserInfoComplete(userId) { result, isCompleted in
    if (result.isSuccess()) {
        // หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูล
    }
};

Step 5. การแสดง UI อัปเดตข้อมูล

ใน Step 4 หากค่า isCompleted เป็น false ให้แสดงเมนูที่ผู้ใช้สามารถเลือกเองได้ในหน้าข้อมูลตัวละครหรือหน้าการตั้งค่า เมื่อผู้ใช้เลือกเมนูดังกล่าว ให้เรียก ProviderFuntap.showUpdateUserInfo(userId) เพื่อเปิดหน้าจออัปเดตข้อมูล ในเวลานี้ หากค่า skipUseUserCheck ในไฟล์ hive_config.xml เป็น true ระบบจะไม่แสดงหน้าจอและจะคืนค่าสำเร็จ.

using hive;

string userId = "USER_ID";

ProviderFuntap.showUpdateUserInfo(userId, (ResultAPI result) => {
    if (result.isSuccess()) {
        // เรียก API สำเร็จ
    }
});
#include "HiveProviderFuntap.h"

FString UserId = "USER_ID";

FHiveProviderFuntap::ShowUpdateUserInfo(UserId, FHiveProviderFuntapOnShowUpdateUserInfoDelegate::CreateLambda([this](const FHiveResultAPI& Result) {
    if (Result.IsSuccess()) {
        // เรียกใช้ API สำเร็จ
    }
}));
#include <HIVE_SDK_Plugin/HIVE_CPP.h>

std::string userId = "USER_ID";

ProviderFuntap::showUpdateUserInfo(userId, [=](ResultAPI const & result) {
    if (result.isSuccess()) {
        // เรียก API สำเร็จ
    }
});
import com.hive.ProviderFuntap
import com.hive.ResultAPI

val userId = "USER_ID"

ProviderFuntap.showUpdateUserInfo(userId) { result: ResultAPI ->
    if (result.isSuccess) {
        // เรียก API สำเร็จ
    }
}
import com.hive.ProviderFuntap;
import com.hive.ResultAPI;

String userId = "USER_ID";

ProviderFuntap.showUpdateUserInfo(userId, (result) -> {
    if (result.isSuccess()) {
        // เรียก API สำเร็จ
    }
});
import ProviderFuntap

let userId = "USER_ID";

ProviderFuntapInterface.showUpdateUserInfo(userId) { result in
    if (result.isSuccess()) {
        // หาก isCompleted เป็น false ให้แสดง UI อัปเดตข้อมูล
    }
};