Gestión de usuarios
7

Creación de un usuario

En este paso, con el token de acceso que recuperó en el paso anterior, tendrá que pasarlo como encabezamiento de autorización al realizar la mutación de usuario de creación.

Su sistema de autorización necesita comprobar si la cuenta de un usuario ya ha sido creada.

  • Si no lo ha hecho, debería crear una nueva cuenta para ellos.
  • Si lo ha hecho, entonces el sistema debería intentar registrarlos.
GraphQL
mutation CreateUser($name: String!) {
 CreateEnjinUser(name: $name) {
   id
   accessTokens
   identities {
     linkingCode
     linkingCodeQr
     wallet {
       ethAddress
     }
   }
 }
}

Una vez que haya creado una cuenta de Enjin, es aconsejable introducir la referencia en su base de datos, para no repetir este proceso innecesariamente en el futuro.

Cómo iniciar la sesión de su usuario

En este último paso de la integración, una vez que se haya confirmado que el usuario tiene una cuenta existente, se puede iniciar la sesión del usuario siguiendo esta consulta:

GraphQL
query RetrievePlayerAccessToken($name: String!) {
 AuthPlayer(id: $name) {
   accessToken
   expiresIn
 }
}

Si la API devuelve un código de vinculación, significa que la Cartera Enjin del usuario no está vinculada. Si no se devuelve ningún código de vinculación, significa que la cartera está vinculada y puedes enviar al usuario al juego.

Identidades de Enjin

La mayoría de las consultas y mutaciones requieren un ID de identidad. Puede utilizar esta consulta para obtener los ID de identidad:

GraphQL
query GetIdentities($page: Int) {
 EnjinIdentities(pagination: {page: $page, limit: 50}) {
   id
   linkingCode
   linkingCodeQr
   wallet {
     ethAddress
   }
 }
}

Usando esta consulta, debería devolver varias piezas de información que le ayudarán a una mayor integración, como por ejemplo:

  • La identificación de la aplicación.
  • El Código de Enlace.
  • El Código de Enlace QR (Esto es bastante útil, puedes copiar la URL del código de enlace QR en una nueva pestaña, y escanear con la Cartera de Enjin para enlazar tu ID de identidad).
  • La dirección de la billetera asociada con la identificación de la identidad.

Compruebe el código de enlace

También puede comprobar el código de vinculación de su usuario cuando lo desee, siguiendo esta consulta:

GraphQL
query GetIdentityLinkingCode($id: Int!) {
 EnjinIdentities(id: $id) {
   linkingCode
   linkingCodeQr
   wallet {
     ethAddress
   }
 }
}

Desenganchar una cartera

A veces, su usuario puede querer cambiar de cartera, lo que puede hacer a través de la Cartera Enjin yendo a la sección "Linked Apps", tocando en el proyecto, tocando en el menú de 3 puntos y seleccionando "Delete".
Además, también puede iniciar esto en su extremo.

La siguiente consulta desbloqueará su cartera y les permitirá volver a vincularla, o vincular una nueva:

GraphQL
mutation UnlinkWalletAddress($id: Int!) {
 DeleteEnjinIdentity(id: $id, unlink: true) {
   linkingCode
   linkingCodeQr
 }
}

Ver fichas en una cartera

Una vez que un jugador se conecta y se vincula, lo primero que querrás hacer es ver su inventario para poder proporcionarle objetos de juego que coincidan con sus fichas.

Es aconsejable actualizar el saldo del usuario en su base de datos. De esta forma, tu proyecto o juego podrá funcionar de forma eficiente con los datos que tienes.

GraphQL
query getBalance($address: String!) {
 EnjinBalances(ethAddress: $address, value_gt: 0) {
   token {
     id
     index
     name
   }
   value
 }
}

Es importante incluir el argumento value_gt: 0 porque evita que se muestren los objetos fundidos. Técnicamente siguen existiendo dentro de esa dirección del blockchain, aunque el usuario haya elegido destruirlos/fundirlos.

Ver fichas específicas en una cartera

Cuando quieras realizar una acción específica con un token, puedes usar esto para validar si el token sigue ahí.

GraphQL
query GetWalletTokenBalance($address: String!, $tokenId: String) {
 EnjinBalances(ethAddress: $address, tokenId: $tokenId, value_gt: 0) {
   token {
     id
     index
     name
   }
   value
 }
}

Esta consulta muestra el índice y el balance de la ficha en cuestión.

También puede optar por solicitar los datos de tokenId e id añadiendo los campos a la consulta.

Ver el balance de ENJ

Puedes ver la cantidad de moneda de Enjin (ENJ) de un usuario en la cartera. Esto puede ser útil, si necesita saber si tienen suficiente Moneda de Enjin para aprobar ciertas transacciones y solicitudes.
Puede utilizar la siguiente consulta para recuperar el saldo de ENJ:

GraphQL
query GetWalletBalance($id: Int!) {
 EnjinUsers(id: $id) {
   identities {
     wallet {
       ethAddress
       enjBalance
     }
   }
 }
}

Si no conoce el ID de usuario o el ID de identidad, puede utilizar la siguiente consulta para obtener los mismos resultados, simplemente con la dirección de ethreum en su lugar:

GraphQL
query GetWalletBalanceByAddress($address: String!) {
 EnjinWallet(ethAddress: $address) {
   enjBalance
   ethBalance
 }
}
Anterior
siguiente
En esta página