Intégration Salesforce avec les applications basées sur Nodejs à l’aide de Canvas – Blog de Jitendra Zaa2 minutes de lecture
Comment utiliser l’authentification de demande signée Canvas avec des applications Web telles que Nodejs et comment utiliser Canvas LifeCycle Handler Class
Salesforce offre de nombreuses façons d’intégrer des systèmes externes tels que SOAP, Rest, Bulk API, API d’interface utilisateur, etc. Un des moyens utiles pour intégrer des applications Web existantes à Salesforce consiste à utiliser Canvas.
Pour les besoins de ce message, j’utilise l’application Nodejs et le code source complet peut être trouvé ici , sur mon Dépôt Github. Il peut être déployé facilement sur Heroku, mais j’ai utilisé mon ordinateur local pour exécuter canvas. Cela prouve également que l’intégration se produit via le navigateur et que l’application de canevas peut donc être hébergée sur site et pas nécessairement sur la couche DMZ.
Étape 1: créer une application connectée dans Salesforce
Activez OAuth dans l’application connectée et fournissez n’importe quelle URL de rappel. L’application Canvas n’utilise pas d’URL de rappel, mais nous avons besoin de la portée.
La prochaine étape consisterait à activer l’application de toile elle-même l’application connectée avec les emplacements où nous l’utiliserions.

Étape 2: Envelopper l’application connectée Canvas dans Visualforce
Dans cet article, nous hébergerons l’application canavs sur la page Visualforce, puis ajouterons la page Visualforce sur la page Compte. LWC ne prend toujours pas en charge l’application Canvas et je ne suis pas un grand fan d’Aura, donc VF convient parfaitement pour une démo rapide.
Code source Visualforce
Pour un contrôle plus avancé et une capacité granulaire, nous pouvons injecter la classe Lifecycle dans l’application Canvas, une documentation complète peut être trouvée dans guide du développeur canvas ici. Ci-dessous le code source que j’ai utilisé dans la démonstration vidéo
/** * Sample Apex class to show case Canvas Life Cycle class demo */ public with sharing class CanvasDemoAppLifeCycle implements Canvas.CanvasLifecycleHandler { public SetexcludeContextTypes(){ Set excluded = new Set (); // Code goes here to add items to excluded list // that should be excluded from Context data return excluded; } public void onRender(Canvas.RenderContext renderContext) { // Get the Application and Environment context from the RenderContext Canvas.ApplicationContext app = renderContext.getApplicationContext(); Canvas.EnvironmentContext env = renderContext.getEnvironmentContext(); if (false){ throw new Canvas.CanvasRenderException('This is sample error message'); } Set fields = new Set {'*','Name'}; //env.addEntityFields(fields); } }