curl --request GET \
--url https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "f0000040-0000-4000-8000-000000000040",
"language": "es",
"name": "order_shipped_promo",
"driftWarning": {
"hasDrift": false,
"stale": [],
"missingLabels": []
},
"variables": [
{
"callerMustSupply": false,
"key": "first_name",
"label": "Contact first name"
},
{
"callerMustSupply": false,
"key": "order_code",
"label": "Order code"
},
{
"callerMustSupply": false,
"key": "shipment_id",
"label": "Shipment ID"
},
{
"callerMustSupply": true,
"key": "promo_code",
"label": "Promo code"
}
]
}{
"title": "Forbidden",
"status": 403,
"code": "BRIDGE_CORE_0301"
}{
"title": "Provider Template Not Found",
"status": 404,
"code": "BRIDGE_TEMPLATE_0001"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"title": "Too Many Requests",
"status": 429,
"code": "BRIDGE_RATE_LIMIT_0001"
}Descubrir las variables agnósticas de una plantilla
Devuelve las variables de una plantilla: key/label/callerMustSupply/isCustom/default, independientes de la ubicación en Meta.
Nunca devuelve la dirección o el índice de una posición de Meta.
templateId acepta el id o el name de la plantilla. Las operaciones salientes aceptan template.id o template.name, con prioridad para un id no vacío. El inicio de conversaciones utiliza onboardingTemplates[].templateId. Utiliza el selector que exige la operación de envío. Consulta la receta de plantillas.
Una variable con callerMustSupply: true no tiene una fuente declarada: quien llama debe incluir su key en parameters al enviar; de lo contrario, el envío falla con un 422 que identifica ese mismo key.
Una variable con callerMustSupply: false la resuelve Bridge por su cuenta, por ejemplo, el nombre del destinatario, o ya tiene un valor que quien llama puede sobrescribir opcionalmente.
Una variable con isCustom: true es un valor que solo conoce quien llama y tiene un default: envíala en parameters para usar tu propio valor, u omítela o déjala en blanco para enviar default.
Códigos de error:
- BRIDGE_CORE_0301: el workspace de la ruta no coincide con el workspace de quien llama (403)
- BRIDGE_TEMPLATE_0001: no se encontró una PROVIDER_TEMPLATE para este workspace e identificador. Incluye por igual un id/name desconocido, una plantilla de otro workspace y una plantilla que no es PROVIDER_TEMPLATE (404); este endpoint nunca confirma la existencia de una plantilla fuera del workspace de quien llama
curl --request GET \
--url https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-connect-us.bridge.new/bridge/api/v1/workspaces/{workspaceId}/templates/{templateId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": "f0000040-0000-4000-8000-000000000040",
"language": "es",
"name": "order_shipped_promo",
"driftWarning": {
"hasDrift": false,
"stale": [],
"missingLabels": []
},
"variables": [
{
"callerMustSupply": false,
"key": "first_name",
"label": "Contact first name"
},
{
"callerMustSupply": false,
"key": "order_code",
"label": "Order code"
},
{
"callerMustSupply": false,
"key": "shipment_id",
"label": "Shipment ID"
},
{
"callerMustSupply": true,
"key": "promo_code",
"label": "Promo code"
}
]
}{
"title": "Forbidden",
"status": 403,
"code": "BRIDGE_CORE_0301"
}{
"title": "Provider Template Not Found",
"status": 404,
"code": "BRIDGE_TEMPLATE_0001"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"title": "Too Many Requests",
"status": 429,
"code": "BRIDGE_RATE_LIMIT_0001"
}Parámetros de ruta
Respuesta
Respuesta satisfactoria
Inventario agnóstico de las variables de una plantilla para un cliente que debe enviarla sin conocer el modelo de Meta.
¿Esta página le ayudó?

