代码段
片段是可重复使用的HTML组件,可以嵌入到电子邮件和登陆页面中,并且可以针对动态内容进行分段。 代码片段没有关联的模板,可以在Marketo中的其他资源中创建和部署。
查询
查询代码片段遵循资产的标准模式,只是它没有By Name方法。 By ID和Browse方法都允许使用状态字段检索该代码片段的已批准版本或草稿版本。
按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"
}
]
}
浏览
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"
}
]
}
查询内容
可以根据代码片段ID检索给定代码片段的内容。
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"
}
]
}
该调用返回内容部分的列表, 包含HTML类型或DynamicContent类型的分区,以及可选的文本类型的分区。
创建和更新
代码片段遵循复杂的资源创建模式,其中对创建代码片段的调用及其内容是单独进行的,因此第一个调用必须是使用可选描述来创建终结点。 数据以x-www-form-urlencoded形式传递,而不是以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"
}
]
}
在代码片段中添加或替换内容是通过id完成的。 内容的类型可以是Text、HTML或DynamicContent。 如果类型为文本,则content参数为纯文本端点,如果类型为HTML,则它是所需的标记文本。 如果类型设置为DynamicContent,则内容参数应设置为要与代码片段关联的分段的ID。
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
}
]
}
元数据的更新也已按ID完成。 只能更新名称和描述:
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"
}
]
}
动态内容
代码片段遵循动态内容的标准模式,但它们本身仅表示一个完整内容部分,因此每个代码片段可能只包含一个动态部分,并提供所使用分段中每个部分的内部部分列表(可选)。 动态内容可以单独通过代码片段ID进行查询,因为一个代码片段中可能只有一个动态内容部分。
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"
}
]
}
]
}
审批
代码片段具有可用于批准、取消批准和放弃草稿的端点,这些端点遵循标准资源模式。 代码片段必须处于草稿状态才能获得批准。
批准
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"
}
]
}
取消批准
unapprove终结点只能用于已批准的代码片段。
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"
}
]
}
放弃草稿
片段必须处于草稿状态才能被丢弃。 无法丢弃已批准的代码片段。
POST /rest/asset/v1/snippet/{id}/discardDraft.json
{
"success":true,
"warnings":[ ],
"errors":[ ],
"requestId":"674c#14b043760de",
"result":[
{
"id":88
}
]
}
克隆
使用API克隆代码片段非常简单,它遵循标准模式,具有必需的名称、原始代码片段和文件夹的ID以及可选描述。 如果不存在批准的版本,则会克隆草稿版本。
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"
}
]
}