Les Webhooks sont utilisés pour déclencher un script de cloud code à partir de serveurs externes.
Un excellent exemple d’utilisation de Webhook est la fonctionnalité Mot de passe oublié.
Pour commencer, créez un script de cloud code que vous souhaitez que l'URL du webhook déclenche. Pour l'exemple de la fonctionnalité Mot de passe oublié, vous pouvez créer un script comme suit.
"use strict";
function main() {
var response = {};
bridge.logDebugJson("Script inputs", data);
var userEmail = data.parameters.email;
response.stringResponse = "webhook is processing user email reseting..." + data.parameters.email;
// validation de l'e-mail de l'usager
if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(userEmail)) {
// vérification si l'e-mail existe dans les usagers brainCloud
var context = {
"pagination": {
"rowsPerPage": 20,
"pageNumber": 1
},
"searchCriteria": {
"emailAddress": userEmail
},
"sortCriteria": {
"playerName": 1
}
};
var userProxy = bridge.getUserServiceProxy();
var postResult = userProxy.sysGetPage(context);
if (postResult.data.results.count > 0) {
var userProfileID = postResult.data.results.items[0].profileId;
// envoi d'un e-mail de réinitialisation du mot de passe
postResult = userProxy.sysSendPasswordResetEmail(userProfileID);
if (postResult.status == 200) {
response.stringResponse = "password reset email has been sent to user's email:" + userEmail;
} else {
response.stringResponse = "system error with sending email...";
}
} else {
response.stringResponse = "user doesn't exist with the email you provided";
}
} else {
response.stringResponse = "user's email is invalid.";
}
return response;
}
main();
Ensuite, créez un nouveau webhook et liez le script créé au champ Cloud Code Script, une URL de webhook sera générée et prête à être utilisée.
Notez que lorsque le Webhook a été configuré à : "
Enforce Secret in Header
", une en-tête nommé "x-bc-secret" avec la valeur du "Endpoint Secret" généré ici doit être inclues dans l'appel HTTP à partir de la requête de l'appelant.Pour des raisons de sécurité, vous pouvez éventuellement mettre sur liste blanche les plages d'adresses IP qui peuvent effectuer cette demande.
Maintenant que vous avez configuré le Webhook depuis brainCloud, vous pouvez le tester depuis votre application ou d'autres outils d'envoi de requêtes. Si vous utilisez Unity, vous pouvez définir le WebHook URL
comme variable et le lier à l'événement onClick de votre objet forgotEmail (un lien ou un bouton dans votre application), ce qui déclenchera cette URL lorsque l'usager clique sur la commande Application.OpenURL
. Saisissez l'adresse e-mail de l'usager et ajoutez-la comme paramètre d'adresse e-mail à l'URL comme suit :
const string passwordResetWebhookUrl = "https://api.braincloudservers.com/webhook/12832/forgotPassword/6ac675bb-f8b4-495f-ac6e-1f0658bfe09c";
Application.OpenURL(passwordResetWebhookUrl + "?email=" + userEmail);
Exécutez votre application pour tester, vous devriez obtenir une fenêtre contextuelle similaire à celle suivante une fois qu'un usager clique sur l'objet forgotEmail,
L'usager est censé recevoir l'e-mail de réinitialisation du mot de passe à l'adresse e-mail qu'il a fournie.
Pour en savoir plus sur l’écriture d’un script Webhook, reportez-vous à notre site de documentation ici .