Usted está aquí:
Diseñar plantillas de vínculo de acción
Antes de crear una plantilla, considere qué valores desea establecer en la plantilla y qué valores desea establecer con variables de vinculación cuando desea crear una instancia de los grupos de vínculos de acción desde la plantilla.
Descripción general de plantillas de vínculos de acción
Esta es una plantilla de grupo de vínculos de acción en Configuración.
Cada grupo de vínculos de acción debe incluir al menos un vínculo de acción. Esta plantilla de vínculo de acción de ejemplo cuenta con tres variables de vinculación: el número de versión de API en la URL de acción, el número de partida en el Cuerpo de solicitud HTTP y el valor del token de OAuth en el campo Encabezado HTTP.
La solicitud de la API de REST de Connect para crear una instancia del grupo de vínculos de acción y establecer los valores de las variables de vinculación:
POST /connect/action-link-group-definitions
{
"templateId":"07gD00000004C9r",
"templateBindings":[
{
"key":"ApiVersion",
"value":"v1.0"
},
{
"key":"ItemNumber",
"value":"8675309"
},
{
"key":"BearerToken",
"value":"00DRR0000000N0g!ARoAQMZyQtsP1Gs27EZ8hl7vdpYXH5O5rv1VNprqTeD12xYnvygD3JgPnNR"
}
]
}Este código de Apex crea una instancia del grupo de vínculos de acción desde la plantilla y establece los valores de las variables de vinculación:
// Get the action link group template Id.
ActionLinkGroupTemplate template = [SELECT Id FROM ActionLinkGroupTemplate WHERE DeveloperName='Doc_Example'];
// Add binding name-value pairs to a map.
Map<String, String> bindingMap = new Map<String, String>();
bindingMap.put('ApiVersion', '1.0');
bindingMap.put('ItemNumber', '8675309');
bindingMap.put('BearerToken', '00DRR0000000N0g!ARoAQMZyQtsP1Gs27EZ8hl7vdpYXH5O5rv1VNprqTeD12xYnvygD3JgPnNR');
// Create ActionLinkTemplateBindingInput objects from the map elements.
List<ConnectApi.ActionLinkTemplateBindingInput> bindingInputs = new List<ConnectApi.ActionLinkTemplateBindingInput>();
for (String key : bindingMap.keySet()) {
ConnectApi.ActionLinkTemplateBindingInput bindingInput = new ConnectApi.ActionLinkTemplateBindingInput();
bindingInput.key = key;
bindingInput.value = bindingMap.get(key);
bindingInputs.add(bindingInput);
}
// Set the template Id and template binding values in the action link group definition.
ConnectApi.ActionLinkGroupDefinitionInput actionLinkGroupDefinitionInput = new ConnectApi.ActionLinkGroupDefinitionInput();
actionLinkGroupDefinitionInput.templateId = template.id;
actionLinkGroupDefinitionInput.templateBindings = bindingInputs;
// Instantiate the action link group definition.
ConnectApi.ActionLinkGroupDefinition actionLinkGroupDefinition =
ConnectApi.ActionLinks.createActionLinkGroupDefinition(Network.getNetworkId(), actionLinkGroupDefinitionInput);Consideraciones a tener en cuenta en el diseño de plantillas
Consideraciones acerca del diseño de una plantilla:
- Determinar la hora de vencimiento del grupo de vínculos de acción.
- Definir variables de vinculación en la plantilla y establecer sus valores cuando cree una instancia del grupo. No almacene información confidencial en plantillas. Utilice variables de vinculación para agregar información confidencial en el momento de la ejecución.
- Determine quién puede ver el vínculo de acción cuando está asociado con un elemento de noticias en tiempo real.
- Utilice variables de contexto en la plantilla para obtener información acerca del contexto de ejecución del vínculo de acción.
Cuando se ejecuta el vínculo de acción, Salesforce rellena los valores y los envía en la solicitud HTTP.
Establecer la hora de vencimiento del grupo de vínculos de acción
Al crear un grupo de vínculos de acción desde una plantilla, se puede calcular la fecha de vencimiento basándose en un periodo proporcionado en la plantilla o se puede establecer el grupo de vínculos de acción para no caducar nunca.
Para establecer las horas hasta el vencimiento en una plantilla, ingrese un valor en el campo Horas hasta el vencimiento de la plantilla de grupo de vínculos de acción. Este valor es el número de horas desde el cual se ha creado una instancia del grupo de vínculos de acción hasta que se ha eliminado de los elementos de noticias en tiempo real asociados y ya no se puede ejecutar. El valor máximo es 8760, lo que corresponde a 365 días.
Para establecer la fecha de vencimiento del grupo de vínculos de acción cuando crea su instancia, establezca la propiedad expirationDate del cuerpo de solicitud Definición de grupo de vínculos de acción (API de REST de Connect) o de la clase de entrada ConnectApi.ActionLinkGroupDefinition (Apex).
Para crear un grupo de vínculos de acción que no caduquen, no ingrese un valor en el campo Horas hasta el vencimiento de la plantilla y no ingrese un valor para la propiedad expirationDate cuando cree una instancia del grupo de vínculos de acción.
A continuación le indicamos cómo funcionan expirationDate y Horas hasta el vencimiento de manera conjunta al crear un grupo de vínculos de acción desde una plantilla.
- Si especifica
expirationDate, se utilizará su valor en el nuevo grupo de vínculos de acción. - Si no especifica
expirationDatey especifica Horas hasta el vencimiento en la plantilla, se utilizará el valor de Horas hasta el vencimiento en el nuevo grupo de vínculos de acción. - Si no especifica
expirationDateni Horas hasta el vencimiento, los grupos de vínculos de acción instanciados desde la plantilla no caducan.
Definir variables de vinculación
Defina variables de vinculación en las plantillas y establezca sus valores cuando cree una instancia del grupo de vínculos de acción.
Puede definir variables de vinculación en los campos URL de acción, Cuerpo de solicitud HTTP y Encabezados HTTP de una plantilla de vínculos de acción. Una vez la plantilla publicada, puede modificar estos campos, puede mover variables de vinculación entre estos campos y puede eliminar variables de vinculación. Sin embargo, no puede agregar nuevas variables de vinculación.
Defina la clave de una variable de vinculación en la plantilla. Cuando crea una instancia del grupo de vínculos de acción, especifique la clave y su valor.
Las claves de las variables de vinculación tienen el formato {!Bindings.key}.
La clave admite caracteres de Unicode en la clase de caracteres de \w predefinida: [\p{Alpha}\p{gc=Mn}\p{gc=Me}\p{gc=Mc}\p{Digit}\p{gc=Pc}].
Este campo URL de acción tiene dos variables de vinculación:
https://www.example.com/{!Bindings.ApiVersion}/items/{!Bindings.ItemId}Este campo Encabezados HTTP tiene dos variables de vinculación:
Authorization: OAuth {!Bindings.OAuthToken}
Content-Type: {!Bindings.ContentType}
Especifique las claves y sus valores cuando cree una instancia del grupo de vínculos de acción en la API de REST de Connect:
POST /connect/action-link-group-definitions
{
"templateId":"07gD00000004C9r",
"templateBindings" : [
{
"key":"ApiVersion",
"value":"1.0"
},
{
"key":"ItemId",
"value":"8675309"
},
{
"key":"OAuthToken",
"value":"00DRR0000000N0g_!..."
},
{
"key":"ContentType",
"value":"application/json"
}
]
}Especifique las claves de las variables de vinculación y establezca sus valores en Apex:
Map<String, String> bindingMap = new Map<String, String>();
bindingMap.put('ApiVersion', '1.0');
bindingMap.put('ItemId', '8675309');
bindingMap.put('OAuthToken', '00DRR0000000N0g_!...');
bindingMap.put('ContentType', 'application/json');
List<ConnectApi.ActionLinkTemplateBindingInput> bindingInputs =
new List<ConnectApi.ActionLinkTemplateBindingInput>();
for (String key : bindingMap.keySet()) {
ConnectApi.ActionLinkTemplateBindingInput bindingInput = new ConnectApi.ActionLinkTemplateBindingInput();
bindingInput.key = key;
bindingInput.value = bindingMap.get(key);
bindingInputs.add(bindingInput);
}
// Define the action link group definition.
ConnectApi.ActionLinkGroupDefinitionInput actionLinkGroupDefinitionInput =
new ConnectApi.ActionLinkGroupDefinitionInput();
actionLinkGroupDefinitionInput.templateId = '07gD00000004C9r';
actionLinkGroupDefinitionInput.templateBindings = bindingInputs;
// Instantiate the action link group definition.
ConnectApi.ActionLinkGroupDefinition actionLinkGroupDefinition =
ConnectApi.ActionLinks.createActionLinkGroupDefinition(Network.getNetworkId(), actionLinkGroupDefinitionInput);
{!Bindings.MyBinding} dos veces en el campo Cuerpo de solicitud HTTP de una plantilla de vínculos de acción y de nuevo en los Encabezados HTTP de otra plantilla de vínculos de acción en la misma plantilla de grupo de vínculos de acción y, cuando cree una instancia del grupo de vínculos de acción desde la plantilla, deberá proporcionar solo un valor para esa variable compartida. Definir quién puede ver el vínculo de acción
Seleccione un valor de la lista desplegable Visibilidad del usuario para determinar quién puede ver el vínculo de acción una vez asociado con un elemento de noticias en tiempo real.
Entre las opciones disponibles están Solo el usuario personalizado puede ver y Todos salvo el usuario personalizado pueden ver. Seleccione uno de estos valores para permitir únicamente a un usuario específico ver el vínculo de acción o evitar que un usuario específico lo vea. Luego, ingrese un valor en el campo Alias de usuario personalizado. Este valor es una clave de variable de vinculación. En el código que crea la instancia del grupo de vínculos de acción, utilice la clave y especifique el valor como desee para cualquier variable de vinculación.
Esta plantilla utiliza el valor Alias de usuario personalizado Invitado:
Cuando crea una instancia del grupo de vínculos de acción, establezca el valor justo como establecería una variable de vinculación.
POST /connect/action-link-group-definitions
{
"templateId":"07gD00000004C9r",
"templateBindings" : [
{
"key":"Invitee",
"value":"005D00000017u6x"
}
]
}Si la plantilla utiliza Solo el responsable del creador puede ver, un usuario que no tiene un responsable recibe un error al crear una instancia de un grupo de vínculos de acción desde la plantilla. Además, el responsable es el mismo a la hora de crear la instancia. Si el responsable del usuario cambia después de crear la instancia, el cambio no se refleja.
Utilizar variables de contexto
Utilice variables de contexto para enviar información acerca del usuario que ha ejecutado el vínculo de acción y el contexto en el que se ha invocado en la solicitud HTTP realizada invocando un vínculo de acción. Puede utilizar variables de contexto en las propiedades actionUrl, headers y requestBody del cuerpo de solicitud Entrada de definición de vínculo de acción o el objeto ConnectApi.ActionLinkDefinitionInput. También puede utilizar variables de contexto en los campos URL de acción, Cuerpo de solicitud HTTP y Encabezados HTTP de plantillas de vínculos de acción. Puede modificar estos campos, incluyendo agregar y eliminar variables de contexto, una vez publicada una plantilla.
Las variables de contexto disponibles son:
| Variable de contexto | Descripción |
|---|---|
{!actionLinkId}
|
El Id. del vínculo de acción ejecutado por el usuario. |
{!actionLinkGroupId}
|
El Id. del grupo de vínculos de acción que incluye el vínculo de acción ejecutado por el usuario. |
{!communityId}
|
El Id. del sitio en el que el usuario ejecutó el vínculo de acción. El valor para su organización interna es la clave vacía "000000000000000000". |
{!communityUrl}
|
La URL del sitio en el que el usuario ejecutó el vínculo de acción. El valor para su organización interna es la cadena vacía "". |
{!orgId}
|
El Id. de la organización en que el usuario ejecutó el vínculo de acción. |
{!userId}
|
El Id. del usuario que ha ejecutado el vínculo de acción. |
Por ejemplo, supongamos que trabaja para una compañía llamada Survey Example y crea una aplicación para AppExchange denominada Survey Example for Salesforce. La compañía A tiene Survey Example for Salesforce instalado. Imaginemos que alguien de la compañía A se dirige a surveyexample.com y realiza una encuesta. Su código de Survey Example utiliza API de REST de Connect para crear un elemento de noticias en tiempo real en la organización de Salesforce de la compañía A con el texto de cuerpo Realizar una encuesta y un vínculo de acción con la etiqueta Aceptar.
Este vínculo de acción de UI lleva al usuario de Salesforce a una página web en surveyexample.com para realizar una encuesta.
Si incluye una variable de contexto {!userId} en el cuerpo de solicitud HTTP o la URL de acción para ese vínculo de acción, cuando un usuario hace clic en el vínculo de acción en las noticias en tiempo real, Salesforce envía el Id. del usuario que hizo clic en la solicitud HTTP que realiza a su servidor.
Si incluye una variable de contexto {!actionLinkId} en el código del servidor Survey Example que crea el vínculo de acción, Salesforce envía una solicitud HTTP con el Id. del vínculo de acción y puede guardarlo en su base de datos.
Este ejemplo incluye la variable de contexto {!userId} en la URL de acción de la plantilla del vínculo de acción.
https://www.example.com/{!Bindings.apiVersion}/doSurvey?salesforceUserId={!userId}Consulte también:
- Crear plantillas de vínculo de acciones
- Modificar plantillas de vínculo de acciones
- Eliminar plantillas de grupos de vínculos de acción
- Plantillas de vínculo de acciones en paquete
- Guía del desarrollador de Apex: Trabajo con vínculos de acción
- Guía del desarrollador de Apex: Definir un vínculo de acción en una plantilla y publicar con un elemento de noticias en tiempo real
