Passer au contenu principal
Toutes les collectionsQuestions générales
Enregistrer le rapport d'erreur et de plantage de votre application dans des entités personnalisées
Enregistrer le rapport d'erreur et de plantage de votre application dans des entités personnalisées

backtrace, unité, entité personnalisée

Jason Liang avatar
Écrit par Jason Liang
Mis à jour il y a plus de 2 semaines

Cet article vous montre les étapes de stockage de votre rapport d'erreur et de plantage de projet Backtrace dans des entités personnalisées brainCloud avec une application Unity intégrant Backtrace.

Étape 1: Créer un webhook avec un script lié depuis la console brainCloud

  • Connectez-vous à la console brainCloud, sélectionnez une application pour stocker les rapports de backtrace, créez une collection personnalisée, définissez la propriété Owned sur true si vous souhaitez classer les rapports par utilisateurs.

  • Créez un webhook et liez-le au script suivant. Veuillez modifier le nom entityType de votre collection personnalisée et l'identifiant de profil utilisateur par défaut. Consultez ce lien pour configurer un webhook dans brainCloud.

    "use strict";

    function main() {
    var response = {};
    bridge.logInfoJson("Script inputs", data);
    var webHookParms = JSON.parse(JSON.stringify(data));
    webHookParms.headers = safeMap(data.headers);
    webHookParms.parameters = safeMap(data.parameters);
    webHookParms.jsonBody = safeMap(data.jsonBody);
    webHookParms.jsonBody.attributes = safeMap(data.jsonBody.attributes);

    // for the case backtrace error coming but user not logging in yet
    // save the log to default user
    var profileId = "d5127546-b027-464d-bade-96b1832e97eb";
    if (data.jsonBody.attributes.profileId[0][0].length > 5 ){
    profileId = data.jsonBody.attributes.profileId[0][0];
    }

    bridge.logInfo("passed in profileId from backtrace", profileId);

    bridge.logInfoJson("Received the webhook start...", data);

    var userSession = bridge.getSessionForProfile(profileId);

    //store backtrace jsonBody to an owned custom entity
    var entityType = "backTraceReport";
    var dataJson = {
    "fingerprint": data.jsonBody.fingerprint,
    "jsonBody": webHookParms.jsonBody
    };
    var acl = {
    "other": 1
    };
    var timeToLive = null;
    var isOwned = true;
    var customEntityProxy = bridge.getCustomEntityServiceProxy(userSession);

    var postResult = customEntityProxy.createEntity(entityType, dataJson, acl, timeToLive, isOwned);
    if (postResult.status == 200) {
    response.createdEntityStatus = "successfully create a custom entity with fingerprint " + webHookParms.jsonBody.fingerprint;
    }

    var logService = bridge.getLogServiceProxy();
    logService.logInfo("Webhook [ " + webHookParms.requestUrl + " ] - dumping parameters...", JSON.stringify(webHookParms));

    response.jsonResponse = {};
    response.message = "Webhook received";
    response.jsonResponse.receivedInCCdata = data;

    return response;
    }

    function safeMap(aMap) {
    var newMap = {};
    var newKey = "";
    for (var key in aMap) {
    newKey = key.replace(/\./g, "_");
    newMap[newKey] = aMap[key];
    }
    return newMap;
    }

    main();

Étape 2: Configurer un projet dans Backtrace

  • Connectez-vous à votre compte de backtrace, créez un projet, puis accédez aux paramètres du projet. Suivez les guides d'intégration pour intégrer Backtrace à votre plateforme. Notre exemple utilise Unity.

  • Accédez à la section Intégrations de workflow, ajoutez-y le webhook brainCloud.

  • Ouvrez la section Attribut, ajoutez-y un attribut profileId, nous l'utiliserons dans l'application Unity.

  • Si votre application utilise l'API de Backtrace, générez-en une à partir de la section des jetons d'API.

Étape 3: Envoyer un rapport de Backtrace depuis l'application Unity

  • Une fois que vous avez suivi les guides d'intégration de Backtrace pour intégrer Backtrace à votre application Unity, assurez-vous d'ajouter la méthode d'envoi de rapport de Backtrace à chaque rappel d'erreur brainCloud.

            public void authError_BCcall(int statusCode, int reasonCode, string statusMessage, object cbObject)
    {
    AddStatusText("authenticate bc fail \n " + statusMessage);

    var report = new BacktraceReport(
    message: statusMessage,
    attributes: new Dictionary<string, string>() { { "attibutestest", "attibutestestvalue" }, { "profileId", profileId } },
    attachmentPaths: new List<string>() { @"file_path_1", @"file_path_2" }
    );
    _backtraceClient.Send(report);
    //_backtraceClient.Send(new Exception(statusMessage));
    }

Étape 4: Vérifiez l’erreur à partir du tableau de bord de suivi et de la console brainCloud

  • Exécutez votre application Unity, générez une erreur, vérifiez-la à partir du tableau de bord de Backtrace.

  • Vérifiez si le script webhook brainCloud est appelé à partir de la page de surveillance de la console brainCloud.

Avez-vous trouvé la réponse à votre question ?