Part of the example problem:

 

When trying to connect to GameSparks via dedicated server credential the following validation failure occurs:


WebSocket callback: {"@class":".AuthenticatedConnectResponse","error":"VALIDATION FAILURE","requestId":"0"}


The code is:


m_gamesparks = std::make_unique<GameSparks::Core::GS>();

m_gsPlatform = std::make_unique<LumberPlatform>(APIKEY, APISECRET, true, true);

m_gamesparks->OnNonce = std::bind(&GameSparksSDKSystemComponent::OnNonce, this, std::placeholders::_1);

m_gamesparks->Initialise(m_gsPlatform.get());


APISECRET is just a define like so:


#define APISECRET "secret"


Solution:


The default credential is "device". The class IGSPlatform contains a function to set the credential to a custom value.

Please call SetApiCredential and pass in the name of the credential to set a custom credential.

Below is an example:


        NativePlatformDescription()

        :IGSPlatform

        (

            "", // insert your auth key

            "", // insert your secret

            true, // use the preview server?

            true // do you want verbose debugging?

        )

        {

            SetRequestTimeoutSeconds(5);

            SetApiCredential("customCredNameHere");

        }