- Chamada PF*Async(…), que inicia uma operação assíncrona.
- (Opcional) Chamada XAsyncGetStatus(…) para acompanhar o status da operação assíncrona. Pode ser usada para aguardar a conclusão da operação assíncrona.
- PF*GetResultSize(…) para recuperar o tamanho em bytes do payload do resultado.
- PF*GetResult(…) para recuperar o resultado da operação assíncrona.
Falhas síncronas
Uma falha síncrona ocorre quando a chamada inicial PF*Async retorna um erro. Esse tipo de falha geralmente indica um erro de programação — padrão de chamada inválido, argumentos inválidos e assim por diante. Esses tipos de erro devem ser resolvidos durante o desenvolvimento. A maioria das outras falhas síncronas é fatal e não pode ser tratada facilmente (por exemplo, E_OUTOFMEMORY).Falhas assíncronas
Uma falha assíncrona ocorre quando XAsyncGetStatus, PF*GetResultSize ou PF*GetResult falha. O leque de falhas assíncronas é mais amplo. Além dos erros causados por argumentos inválidos, as falhas assíncronas se enquadram em várias categorias, descritas com mais detalhes nas seções a seguir.Falhas de validação de token
Antes de iniciar uma chamada de serviço do PlayFab, o SDK faz uma validação do lado do cliente para garantir que o token de autenticação necessário esteja disponível e ainda seja válido. Se essa verificação falhar, um dos seguintes erros será retornado:-
E_PF_NOENTITYTOKEN (0x89235411): Indica que o EntityToken associado ao PFEntityHandle fornecido expirou. Consulte Tratando a expiração de tokens para obter mais informações sobre como lidar com essa situação. -
E_PF_NOSECRETKEY (0x89235412)Indica que o PFEntityHandle fornecido não tem uma SecretKey associada. A ausência de uma SecretKey geralmente significa que você tentou fazer uma solicitação com um tipo de entidade inválido. As APIs que exigem uma SecretKey só podem ser chamadas por entidades de título. Observe que as APIs de SecretKey são voltadas para cenários de servidor ou administração e não estão disponíveis no GDK.
Falhas do serviço PlayFab
Se o SDK fizer a solicitação ao serviço PlayFab com êxito, o serviço ainda poderá retornar um erro. Há dois tipos amplos de erros do serviço PlayFab: globais, que podem ser retornados por qualquer API do PlayFab, e específicos, que são específicos de cada API. Veja a seguir a lista completa de falhas globais:E_PF_API_CLIENT_REQUEST_RATE_LIMIT_EXCEEDED (0x892354dd)E_PF_API_CONCURRENT_REQUEST_LIMIT_EXCEEDED (0x8923556b)E_PF_CONCURRENT_EDIT_ERROR (0x8923549b)E_PF_DATA_UPDATE_RATE_EXCEEDED (0x89235534)E_PF_DOWNSTREAM_SERVICE_UNAVAILABLE (0x89235495)E_PF_INVALID_API_ENDPOINT (0x89235499)E_PF_OVER_LIMIT (0x892354ec)E_PF_SERVICE_UNAVAILABLE (0x89235491)E_PF_ACCOUNT_BANNED (0x89235423)E_PF_ACCOUNT_DELETED (0x89235557)E_PF_ACCOUNT_NOT_FOUND (0x89235422)E_PF_API_REQUESTS_DISABLED_FOR_TITLE (0x8923553c)E_PF_INVALID_CONTENT_TYPE (0x892354a6)E_PF_INVALID_ENTITY_TYPE (0x8923558a):E_PF_INVALID_PARAMS (0x89235421)E_PF_INVALID_REQUEST (0x89235468)E_PF_INVALID_TITLE_ID (0x89235425)E_PF_NOT_AUTHENTICATED (0x8923546b)E_PF_NOT_AUTHORIZED (0x89235478)E_PF_NOT_AUTHORIZED_BY_TITLE (0x892354d5)E_PF_PROFILE_DOES_NOT_EXIST (0x8923553f)E_PF_TITLE_DELETED (0x89235570)E_PF_UNKNOWN_ERROR (0x89235448)
Falhas de limitação
Uma categoria de falhas do serviço são os erros de limitação, indicados por um código de status HTTP 429. Quando o serviço PlayFab retorna um erro de limitação, isso significa que o cliente está chamando um ponto de extremidade com muita frequência em um período específico. Quando o SDK recebe um erro de limitação, ele tenta novamente a solicitação automaticamente após uma pequena espera. Se a solicitação ainda não for bem-sucedida dentro da janela de novas tentativas configurada, o erro será repassado ao título. As configurações de nova tentativa do SDK podem ser definidas chamando PFSetHttpRetrySettings.Falhas de rede
Se a pilha de rede subjacente retornar um erro, esse erro será repassado ao cliente. Uma ampla variedade de erros pode ocorrer dependendo da falha de rede. A maioria dos erros de rede resulta emE_HC_NO_NETWORK (0x89235006).
