Upravit

Sdílet prostřednictvím


PartyManager::CreateLocalUser

Creates a local user object that is used to represent a local player when performing networking and chat operations.

Syntax

PartyError CreateLocalUser(  
    PartyString entityId,  
    PartyString titlePlayerEntityToken,  
    PartyLocalUser** localUser  
)  

Parameters

entityId   PartyString

The PlayFab Entity ID to associate with the local user.

titlePlayerEntityToken   PartyString

The PlayFab Entity Token to associate with the local user.

localUser   PartyLocalUser**
library-allocated output

The output local user object.

Return value

PartyError

c_partyErrorSuccess if creating the local user succeeded or an error code otherwise. The human-readable form of the error code can be retrieved via GetErrorMessage().

Remarks

This method takes a PlayFab Entity ID as entityId and a PlayFab Entity Token as titlePlayerEntityToken. No synchronous validation is performed on these values except that the length of entityId is less than or equal to c_maxEntityIdStringLength. When the library performs operations that require user authentication or authorization, such as creating a network, authenticating into a network, or performing speech-to-text transcription, the Party service will validate that the token is valid, is not expired, is associated with the Entity ID provided, and is authorized to perform the operation. If these conditions aren't met, the operation will fail.

A PlayFab Entity ID and Entity Token can be obtained from the output of a PlayFab login operation and then provided as input to this method. The PlayFab Entity ID must be of type title_player_account, which, for most developers, represents the "player" in the most traditional way. To create users representing other supported types of entities, use CreateLocalUserWithEntityType() instead.

The provided entityId and titlePlayerEntityToken must have been acquired using the same Title ID that was passed to Initialize().

The Party library makes a copy of the supplied PlayFab Entity Token for use in subsequent operations that require authentication or authorization of the local user, such as CreateNewNetwork() or PartyNetwork::AuthenticateLocalUser(). If the token provided to this call is expired or otherwise invalid, operations that require a valid token will fail. A new, valid token can be provided to the Party library via a call to PartyLocalUser::UpdateEntityToken().

The caller is responsible for monitoring the expiration of the entity token provided to this method and PartyLocalUser::UpdateEntityToken(). When the token is nearing or past the expiration time a new token should be obtained by performing a PlayFab login operation and provided to the Party library by calling PartyLocalUser::UpdateEntityToken(). We recommend acquiring a new token when the previously supplied token is halfway through its validity period. On platforms that may enter a low power state or otherwise cause the application to pause execution for a long time, preventing the token from being refreshed before it expires, the token should be checked for expiration once execution resumes.

Only c_maxLocalUsersPerDeviceCount PartyLocalUser objects may exist simultaneously at any given time. This method will synchronously fail if creating another local user would exceed that limit.

On successful return, this method invalidates the memory for any array previously returned by GetLocalUsers(), as it synchronously adds the new user to the array. StartProcessingStateChanges() also invalidates the memory for the array. The returned localUser object will be valid until a PartyDestroyLocalUserCompletedStateChange has been generated and all state changes referencing the object have been returned to FinishProcessingStateChanges().

Requirements

Header: Party.h

See also

PartyManager
PartyDestroyLocalUserCompletedStateChange
PartyManager::Initialize
PartyManager::GetLocalUsers
PartyManager::CreateLocalUserWithEntityType
PartyManager::DestroyLocalUser
PartyManager::CreateNewNetwork
PartyNetwork::AuthenticateLocalUser
PartyNetwork::RemoveLocalUser
PartyNetwork::CreateInvitation
PartyNetwork::RevokeInvitation
PartyNetwork::CreateEndpoint
PartyLocalUser::UpdateEntityToken
PartyLocalDevice::CreateChatControl