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");
}