> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Démarrage rapide NodeJS

> Installez la bibliothèque cliente Node.js de PlayFab depuis npm et effectuez votre premier appel d'API PlayFab depuis un script Node.js pour authentifier un joueur.

# Démarrage rapide : bibliothèque cliente PlayFab pour NodeJS

Prenez en main la bibliothèque cliente PlayFab pour NodeJS afin d'effectuer votre premier appel d'API PlayFab et d'authentifier un joueur. Suivez les étapes pour installer le package et essayer l'exemple de code pour les tâches de base.

## Prérequis

* Un [compte de développeur PlayFab](https://developer.playfab.com). Pour plus d'informations sur la création d'un titre et la recherche du TitleId, consultez [Démarrage rapide : Game Manager](/fr/services/playfab/live-service-management/gamemanager/quickstart).
* [Node.js](https://nodejs.org/en/download/)
* Node doit figurer dans votre variable d'environnement PATH. Si vous avez utilisé le programme d'installation, elle est probablement déjà définie sur l'emplacement par défaut : C:/Program Files (x86)/nodejs/

## Configuration

Les commandes suivantes fonctionnent sous Windows, macOS et Linux.

1. Créez un nouveau dossier pour votre projet \{NodeProjLocation} :

   `GettingStarted.js`

2. Ouvrez une fenêtre de commande dans le dossier de votre projet.

3. Exécutez cette commande :

   `npm install playfab-sdk --save`

   (Gardez cette fenêtre ouverte : vous l'utiliserez à nouveau plus tard.)

L'installation de PlayFab est terminée !

## Exemples de code

### Authentifier le client

Ce guide présente les étapes minimales nécessaires pour effectuer votre premier appel d'API PlayFab, sans interface graphique ni retour à l'écran. La confirmation s'effectue dans le journal de la console. Pour plus d'informations sur les paramètres et les valeurs de retour, nous vous recommandons d'utiliser d'abord le [modèle Postman](/fr/services/playfab/sdks/postman/postman-quickstart).

Dans votre éditeur de texte préféré, mettez à jour le contenu de GettingStarted.js comme suit :

<Note>
  Pour connaître le format correct de l'objet `loginRequest` de cet exemple, consultez la référence de l'API pour [LoginWithCustomID](xref:titleid.playfabapi.com.client.authentication.loginwithcustomid).
</Note>

```javascript theme={null}
var PlayFab = require("./node_modules/playfab-sdk/Scripts/PlayFab/PlayFab");
var PlayFabClient = require("./node_modules/playfab-sdk/Scripts/PlayFab/PlayFabClient");

function DoExampleLoginWithCustomID() {
    PlayFab.settings.titleId = "144";
    var loginRequest = {
        // Currently, you need to look up the correct format for this object in the API reference for LoginWithCustomID. The Request Headers and Request Body are included as keys and values in the request object.
        TitleId: PlayFab.settings.titleId,
        CustomId: "GettingStartedGuide",
        CreateAccount: true
    };

    // For functions in the Node SDK, the first parameter will be the request object and the second parameter will be the callback function. The callback function executes after the request returns.
    PlayFabClient.LoginWithCustomID(loginRequest, LoginCallback);
}

function LoginCallback(error, result) {
    if (result !== null) {
        console.log("Congratulations, you made your first successful API call!");
    } else if (error !== null) {
        console.log("Something went wrong with your first API call.");
        console.log("Here's some debug information:");
        console.log(CompileErrorReport(error));
    }
}

// This is a utility function we haven't put into the core SDK yet. Feel free to use it.
function CompileErrorReport(error) {
    if (error == null)
        return "";
    var fullErrors = error.errorMessage;
    for (var paramName in error.errorDetails)
        for (var msgIdx in error.errorDetails[paramName])
            fullErrors += "\n" + paramName + ": " + error.errorDetails[paramName][msgIdx];
    return fullErrors;
}

// Kick off the actual login call
DoExampleLoginWithCustomID();
```

## Exécuter le code

1. Dans la fenêtre de console ouverte lors de l'installation, exécutez la commande :

   `node GettingStarted.js`

   Le texte suivant devrait s'afficher :

   "Congratulations, you made your first successful API call!"

Vous pouvez maintenant commencer à effectuer d'autres appels d'API et à développer votre jeu.

Pour obtenir la liste de tous les appels d'API client disponibles, consultez notre documentation [Références de l'API PlayFab](/fr/services/playfab/api-references).

## Analyse du code

Cette section explique en détail chaque partie du code du démarrage rapide Node.

Pour le SDK Node, les fonctions de `PlayFabClientSDK` portent le nom de la requête HTTP. Par exemple, la requête HTTP correspondant à la fonction `LoginWithCustomID` s'appelle également « LoginWithCustomID ». Les en-têtes et le corps de la requête sont regroupés dans l'objet de requête JavaScript sous forme de clés et de valeurs.

* Analyse ligne par ligne de `GettingStarted.js`
  * `PlayFab.settings.titleId = "xxxx";`
    * Chaque développeur PlayFab crée un titre dans Game Manager. Lorsque vous publiez votre jeu, vous devez coder ce TitleId dans votre jeu. Cela permet au client de savoir comment accéder aux bonnes données dans PlayFab. Pour la plupart des utilisateurs, considérez simplement qu'il s'agit d'une étape obligatoire pour que PlayFab fonctionne.

  * `var loginRequest = { TitleId: PlayFab.settings.titleId, CustomId: "GettingStartedGuide", CreateAccount: true };`
    * La plupart des méthodes de l'API PlayFab nécessitent des paramètres d'entrée, et ces paramètres d'entrée sont regroupés dans un objet de requête.
    * Chaque méthode d'API nécessite un objet de requête unique, avec un mélange de paramètres facultatifs et obligatoires.
      * Pour `LoginWithCustomIDRequest`, il existe un paramètre obligatoire `CustomId`, qui identifie un joueur de manière unique, et `CreateAccount`, qui permet de créer un nouveau compte avec cet appel. `TitleId` est un autre paramètre obligatoire en JavaScript, et il doit correspondre à `PlayFab.settings.titleId`.
      * Pour savoir où trouver le `TitleId`, consultez [Démarrage rapide : Game Manager](/fr/services/playfab/live-service-management/gamemanager/quickstart).
* Dans ce cas, `TitleId`, `customId` et `CreateAccount` proviennent du corps de la requête de `LoginWithCustomID`.
  * `PlayFabClientSDK.LoginWithCustomID(loginRequest, LoginCallback);`
    * Cette ligne lance la requête asynchrone vers `LoginWithCustomID`, qui appellera LoginCallback une fois l'appel d'API terminé.

  * Pour la connexion, la plupart des développeurs voudront utiliser une méthode de connexion plus appropriée.
    * Consultez la [documentation sur la connexion PlayFab](xref:titleid.playfabapi.com.client.authentication) pour obtenir la liste de toutes les méthodes de connexion et de leurs paramètres d'entrée. Les choix courants sont :
      * [LoginWithAndroidDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithandroiddeviceid)
      * [LoginWithIOSDeviceID](xref:titleid.playfabapi.com.client.authentication.loginwithiosdeviceid)
      * [LoginWithEmailAddress](xref:titleid.playfabapi.com.client.authentication.loginwithemailaddress)
* `LoginCallback` contient deux paramètres : `error` et `result`.
  * En cas de réussite, `error` est `null` et l'objet `result` contient les informations demandées, en fonction de l'API appelée.
    * Ce `result` contient des informations de base sur le joueur, mais pour la plupart des utilisateurs, la connexion est simplement une étape obligatoire avant d'appeler d'autres API.
* Si error n'est pas `null`, votre appel d'API a échoué.

## Résolution des problèmes

* Les appels d'API peuvent échouer pour de nombreuses raisons, et vous devez toujours essayer de gérer les échecs.
* L'objet error comprend le nom, le code et le message de l'erreur. Ensemble, ces informations devraient suffire à diagnostiquer votre erreur.
* Raisons pour lesquelles les appels d'API échouent (par ordre de probabilité) :
  * `PlayFabSettings.TitleId` n'est pas défini. Si vous oubliez de définir `TitleId` sur votre titre, rien ne fonctionnera.
  * Paramètres de la requête. Si vous n'avez pas fourni les informations correctes ou requises pour un appel d'API particulier, celui-ci échouera. Consultez `error.errorMessage`, `error.errorDetails` ou `error.GenerateErrorReport()` pour plus d'informations.
  * Problème de connectivité de l'appareil. Les téléphones portables perdent et retrouvent constamment la connectivité. Ainsi, n'importe quel appel d'API peut échouer de manière aléatoire à tout moment, puis fonctionner immédiatement après. Entrer dans un tunnel peut vous déconnecter complètement.
  * Problème de serveur PlayFab. Comme pour tout logiciel, des problèmes peuvent survenir. Consultez nos [notes de publication](/fr/services/playfab/release-notes) pour connaître les mises à jour.
* Internet n'est pas fiable à 100 %. Parfois, le message est corrompu ou n'atteint pas le serveur PlayFab.
  * Les codes d'erreur globaux des méthodes d'API sont disponibles dans les [codes d'erreur globaux des méthodes d'API](/fr/services/playfab/api-references/global-api-method-error-codes).
  * Si vous avez des difficultés à déboguer un problème et que les informations d'erreur ne suffisent pas, rendez-vous sur nos [forums](https://community.playfab.com/index.html).

## Étapes suivantes

Ce démarrage rapide présente une procédure simplifiée d'authentification d'un utilisateur. Pour plus d'informations sur l'authentification des utilisateurs, consultez [Principes de base et bonnes pratiques de connexion](/fr/services/playfab/identity/player-identity/login/login-basics-best-practices).

Bon codage !


## Related topics

- [Langages pris en charge par PlayFab](/fr/services/playfab/sdks/languages/index.md)
- [SDK NodeJS](/fr/services/playfab/sdks/nodejs/index.md)
- [Démarrage rapide du SDK Generator](/fr/services/playfab/sdks/sdkgenerator/quickstart.md)
- [Démarrage rapide](/fr/services/playfab/economy-monetization/economy-v2/quickstart.md)
- [Licence Nodeunit pour Node.js](/fr/services/playfab/sdks/nodejs/nodeunit-license.md)
