Extraits
Référence du point d’entrée du fragment de code
Les fragments de code sont des composants HTML réutilisables qui peuvent être incorporés dans des e-mails et des landing pages et qui peuvent être segmentés pour le contenu dynamique. Les fragments de code ne sont pas associés à des modèles et peuvent être créés et déployés dans d’autres ressources dans Marketo.
Requête
L’interrogation de fragments de code suit le modèle standard pour les ressources , sauf qu’elle ne comporte pas de méthode Par nom. Les méthodes Par ID et Parcourir permettent d’utiliser le champ de statut pour récupérer les versions approuvées ou les brouillons du fragment de code.
Par Id
GET /rest/asset/v1/snippet/{id}.json?status=approved
{
"success":true,
"warnings":[ ],
"errors":[ ],
"requestId":"fa0f#14b04375f0a",
"result":[
{
"id":83,
"name":"BYkHVJEedl",
"description":"yzSLvNFyrmeVmyLzqryUfGlDOJTnvyyfsQTXPDCGdCwcWUlfoCNApUqYgwZGElrUFoxBHJcMdXdqTKvtjtfsmPgokyRgVLeHyJCw",
"createdAt":"2015-01-19T22:01:52Z+0000",
"updatedAt":"2015-01-19T22:01:52Z+0000",
"folder":{
"type":"Folder",
"value":662
},
"status":"approved",
"workspace":"Default"
}
]
}
Parcourir
GET /rest/asset/v1/snippets.json?maxReturn=3
{
"success":true,
"warnings":[ ],
"errors":[ ],
"requestId":"f9cc#14b04376181",
"result":[
{
"id":23,
"name":"ADJvMLBMpS",
"description":"XkzFUVLXVHrojLGLJVLPpwguOXuDvhAqaaSkBUVzgHrgDhqqRzyXlULIXSHJvfBHjCSaMwjyEdrdxcjFCRoNFVvdBBTDfSrUJzaR",
"createdAt":"2015-01-15T20:10:39Z+0000",
"updatedAt":"2015-01-15T20:10:39Z+0000",
"url": null,
"folder":{
"type":"Folder",
"value":620,
"folderName": "Snippets"
},
"status":"draft",
"workspace":"Default"
},
{
"id":46,
"name":"Biswa Snippet",
"description":"",
"createdAt":"2015-01-16T05:18:55Z+0000",
"updatedAt":"2015-01-16T05:19:27Z+0000",
"url": null,
"folder":{
"type":"Folder",
"value":630,
"folderName": "Snippets"
},
"status":"draft",
"workspace":"Default"
},
{
"id":12,
"name":"dJJQkKbUYq",
"description":"VXuHkYMREHrhxUSgYbKfaNeLisdFxOromCXQNrgmModvkuoyZdQjtAbXxDUbBvoDVCZmAVbasiHyWoWfTwgrGxnzpKepGrAUvfen",
"createdAt":"2015-01-15T05:12:33Z+0000",
"updatedAt":"2015-01-15T05:12:33Z+0000",
"url": null,
"folder":{
"type":"Folder",
"value":615,
"folderName": "Snippets"
},
"status":"draft",
"workspace":"Default"
}
]
}
Contenu de la requête
Le contenu d’un fragment de code donné peut être récupéré en fonction de l’identifiant du fragment de code.
GET /rest/asset/v1/snippet/{id}/content.json
{
"success":true,
"warnings":[ ],
"errors":[ ],
"requestId":"5c50#14b04376159",
"result":[
{
"type":"HTML",
"content":"draft testUpdateSnippetContent1 HTML Content"
},
{
"type":"Text",
"content":"draft testUpdateSnippetContent1 Text Content"
}
]
}
L’appel renvoie une liste de sections de contenu, qui se composent de sections de type HTML ou DynamicContent, et éventuellement d’une section avec un type de texte.
Créer et mettre à jour
Les fragments de code suivent le modèle de création de ressource complexe, où l’appel de la commande créer un fragment de code et son contenu sont effectués séparément. Par conséquent, le premier appel doit être effectué vers le point d’entrée de création, avec une description facultative. Les données sont transmises sous la forme x-www-form-urlencoded, et non sous la forme JSON.
POST /rest/asset/v1/snippets.json
Content-Type: application/x-www-form-urlencoded
name=Test Snippet 09 - deverly&folder={"id":395,"type":"Folder"}&description=This is a test snippet
{
"success": true,
"warnings": [],
"errors": [],
"requestId": "bd57#14e231ee3a1",
"result": [
{
"id": 13,
"name": "Test Snippet 09 - deverly",
"description": "This is a test snippet",
"createdAt": "2015-06-24T01:11:43Z+0000",
"updatedAt": "2015-06-24T01:11:43Z+0000",
"url": "https://app-abm.marketo.com/#SN13B2ZN395",
"folder": {
"type": "Folder",
"value": 395,
"folderName": "Snippets"
},
"status": "draft",
"workspace": "Default"
}
]
}
L’ajout ou le remplacement de contenu dans un fragment de code est effectué par ID. Le contenu peut être de type Texte, HTML ou Contenu dynamique. Si le type est Texte, le paramètre de contenu est le point d’entrée de texte brut, tandis que s’il s’agit d’HTML, il s’agit du texte de balisage souhaité. Si le type est défini sur Contenu dynamique, le paramètre de contenu doit être défini sur l’identifiant de la segmentation à associer au fragment de code.
POST /rest/asset/v1/snippet/{id}/content.json
Content-Type: application/x-www-form-urlencoded
type=HTML&content=draft testUpdateSnippetContent1 HTML Content
{
"success":true,
"warnings":[ ],
"errors":[ ],
"requestId":"73d9#14b04376139",
"result":[
{
"id":82
}
]
}
La mise à jour des métadonnées est également effectuée par l’ID. Seuls le nom et la description peuvent être mis à jour :
POST /rest/asset/v1/snippet/{id}.json
Content-Type: application/x-www-form-urlencoded
name=Test Snippet&description=New Description
{
"success":true,
"warnings":[ ],
"errors":[ ],
"requestId":"9ad0#14b043762b1",
"result":[
{
"id":82,
"name":"Test Snippet",
"description":"New Description",
"createdAt":"2015-01-19T22:01:52Z+0000",
"updatedAt":"2015-01-19T22:01:53Z+0000",
"url": "https://app-abm.marketo.com/#SN3B2ZN395",
"folder":{
"type":"Folder",
"value":662,
"folderName": "Snippets"
},
"status":"draft",
"workspace":"Default"
}
]
}
Contenu dynamique
Les fragments de code suivent le modèle standard pour le contenu dynamique, mais ils ne représentent qu’une seule section de contenu. De ce fait, chaque fragment de code peut ne contenir qu’une seule section dynamique, avec une liste de sections internes éventuellement pour chaque segment de la segmentation utilisée. Le contenu dynamique peut être interrogé uniquement par l’ID de fragment de code, car il ne peut y avoir qu’une seule section de contenu dynamique dans un fragment de code.
GET /rest/asset/v1/snippet/{id}/dynamicContent.json
{
"success": true,
"warnings": [ ],
"errors": [ ],
"requestId": "ae3#14c2b499111",
"result": [
{
"createdAt": "2015-03-13T06:24:35Z+0000",
"updatedAt": "2015-03-17T20:29:42Z+0000",
"id": 70,
"segmentation": 1001,
"content": [
{
"id": "Nzk*",
"segmentId": 1001,
"segmentName": "Area",
"content": "Sample HTML for Area",
"type": "HTML"
},
{
"id": "Nzk*",
"segmentId": 1001,
"segmentName": "Area",
"content": "Sample Text for Area",
"type": "Text"
},
{
"id": "Nzk*",
"segmentId": 1002,
"segmentName": "Default",
"content": "Sample HTML for Default",
"type": "HTML"
},
{
"id": "Nzk*",
"segmentId": 1002,
"segmentName": "Default",
"content": "Sample Text for Default",
"type": "Text"
}
]
}
]
}
Validation
Les fragments de code ont des points d’entrée pour l’approbation, l’annulation et l’abandon des brouillons, qui suivent le modèle de ressource standard. Un fragment de code doit être à l’état de brouillon pour être approuvé.
Approuver
POST /rest/asset/v1/snippet/{id}/approveDraft.json
{
"success": true,
"warnings": [ ],
"errors": [ ],
"requestId": "11903#14db1af2f6c",
"result": [
{
"id": 3,
"name": "Test Snippet 02 - deverly",
"description": "hey this is a test snippet!",
"createdAt": "2015-06-02T00:32:37Z+0000",
"updatedAt": "2015-06-02T00:32:37Z+0000",
"url": "https://app-abm.marketo.com/#SN3B2ZN395",
"folder": {
"type": "Folder",
"value": 395,
"folderName": "Snippets"
},
"status": "approved",
"workspace": "Default"
}
]
}
Désapprouver
Le point d’entrée unapprove ne peut être utilisé que sur des fragments de code approuvés.
POST /rest/asset/v1/snippet/{id}/unapprove.json
{
"success": true,
"warnings": [ ],
"errors": [ ],
"requestId": "7d20#14db1c7a2a9",
"result": [
{
"id": 89,
"name": "Test Snippet 01 - deverly",
"description": "",
"createdAt": "2015-05-15T19:01:22Z+0000",
"updatedAt": "2015-05-15T19:07:07Z+0000",
"url": "https://app-abm.marketo.com/#SN1B2ZN395",
"folder": {
"type": "Folder",
"value": 395,
"folderName": "Snippets"
},
"status": "draft",
"workspace": "Default"
}
]
}
Abandonner le brouillon
Le fragment de code doit être à l’état de brouillon pour être ignoré. Un fragment de code approuvé ne peut pas être ignoré.
POST /rest/asset/v1/snippet/{id}/discardDraft.json
{
"success":true,
"warnings":[ ],
"errors":[ ],
"requestId":"674c#14b043760de",
"result":[
{
"id":88
}
]
}
Cloner
Le clonage d’un fragment de code avec l’API est simple et suit le modèle standard, avec un nom obligatoire, l’identifiant du fragment de code et du dossier d’origine, ainsi qu’une description facultative. S’il n’existe aucune version approuvée, le brouillon est cloné.
POST /rest/asset/v1/snippet/{id}/clone.json
Content-Type: application/x-www-form-urlencoded
name=Test Snippet Clone 3 - deverly&folder={"id":395,"type":"Folder"}&description=This is a test snippet
{
"success": true,
"warnings": [],
"errors": [],
"requestId": "21c9#14e2327e33d",
"result": [
{
"id": 14,
"name": "Test Snippet Clone 3 - deverly",
"description": "This is a test snippet",
"createdAt": "2015-06-24T01:21:33Z+0000",
"updatedAt": "2015-06-24T01:21:33Z+0000",
"url": "https://app-abm.marketo.com/#SN14B2ZN395",
"folder": {
"type": "Folder",
"value": 395,
"folderName": "Snippets"
},
"status": "draft",
"workspace": "Default"
}
]
}