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 - entityTypede 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));
 }







