Please Select Your Location
Australia
Österreich
België
Canada
Canada - Français
中国
Česká republika
Denmark
Deutschland
France
HongKong
Iceland
Ireland
Italia
日本
Korea
Latvija
Lietuva
Lëtzebuerg
Malta
المملكة العربية السعودية (Arabic)
Nederland
New Zealand
Norge
Polska
Portugal
Russia
Saudi Arabia
Southeast Asia
España
Suisse
Suomi
Sverige
台灣
Ukraine
United Kingdom
United States
Please Select Your Location
België
Česká republika
Denmark
Iceland
Ireland
Italia
Latvija
Lietuva
Lëtzebuerg
Malta
Nederland
Norge
Polska
Portugal
España
Suisse
Suomi
Sverige

Unreal

ViveportTokenDemo.h

#include "Components/ActorComponent.h"
#include "ViveportApi.h"
#include "ViveportToken.h"

#include "ViveportTokenDemo.generated.h"

UCLASS(ClassGroup=(Viveport), meta=(BlueprintSpawnableComponent))
class VIVEPORTSDK_API UViveportTokenDemo : public UActorComponent
{
    GENERATED_BODY()

public:
    // Sets default values for this component's properties
    UViveportTokenDemo();

    // Called when the game starts
    void BeginPlay() override;

    void EndPlay(const EEndPlayReason::Type EndPlayReason) override;

    FString APP_ID = "bd67b286-aafc-449d-8896-bb7e9b351876";

    class MyIsTokenReadyCallback : public ViveportApiStatus
    {
    public:
        void OnSuccess(
            ) override;
        void OnFailure(int error_code
            ) override;
    };

    class MyGetSessionTokenCallback : public ViveportApiStatus2
    {
    public:
        void OnSuccess(
            const FString& token
            ) override;
        void OnFailure(
            int errorCode,
            const FString& errorMessage
            ) override;
    };

private:
    // callback interface
    class MyInitCallback : public ViveportApiStatus
    {
    public:
        void OnSuccess(
            ) override;
        void OnFailure(int error_code
            ) override;
    };

    MyInitCallback myInitCallback;

    class MyShutdownCallback : public ViveportApiStatus
    {
    public:
        void OnSuccess(
            ) override;
        void OnFailure(int error_code
            ) override;
    };

    MyShutdownCallback myShutdownCallback;
};

ViveportTokenDemo.cpp

// Sets default values for this component's properties
UViveportTokenDemo::UViveportTokenDemo()
{
    // Set this component to be initialized when the game starts, and to be ticked every frame.  You can turn these features
    // off to improve performance if you don't need them.
    PrimaryComponentTick.bCanEverTick = true;
}

// Called when the game starts
void UViveportTokenDemo::BeginPlay()
{
    Super::BeginPlay();

    UViveportApi::Init(&myInitCallback, APP_ID);
}

void UViveportTokenDemo::EndPlay(const EEndPlayReason::Type EndPlayReason)
{
    Super::EndPlay(EndPlayReason);

    UViveportApi::Shutdown(&myShutdownCallback);
}

void UViveportTokenDemo::MyInitCallback::OnSuccess()
{
    FString fstring("Init success.");
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);

    UViveportToken::IsReady(&myIsTokenReadyCallback);
}

void UViveportTokenDemo::MyInitCallback::OnFailure(int error_code)
{
    FString fstring = FString::Printf(TEXT("Init failure. error=%d"), error_code);
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
}

void UViveportTokenDemo::MyIsTokenReadyCallback::OnSuccess()
{
    FString fstring("IsTokenReady success.");
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);

    UViveportToken::GetSessionToken(&myGetSessionTokenCallback);
}

void UViveportTokenDemo::MyIsTokenReadyCallback::OnFailure(int error_code)
{
    FString fstring = FString::Printf(TEXT("IsTokenReady failure. error=%d"), error_code);
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
}

void UViveportTokenDemo::MyGetSessionTokenCallback::OnSuccess(
    const FString& token
    )
{
    FString fstring = FString::Printf(TEXT("Session Token=%s"), *token);
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
}

void UViveportTokenDemo::MyGetSessionTokenCallback::OnFailure(int error_code, const FString& error_message) {
    FString fstring = FString::Printf(TEXT("Get session token failed! error_code=%d"),
        error_code);
    if (!error_message.IsEmpty())
    {
        fstring += FString::Printf(TEXT(",\n error_message=%s"),
            *error_message);
    }

    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
}

void UViveportTokenDemo::MyShutdownCallback::OnSuccess()
{
    FString fstring("Shutdown success.");
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
}

void UViveportTokenDemo::MyShutdownCallback::OnFailure(int error_code)
{
    FString fstring = FString::Printf(TEXT("Shutdown failure. error=%d"), error_code);
    GEngine->AddOnScreenDebugMessage(-1, 15.0f, FColor::White, fstring);
}