google-apps-script - Google 表格 - Mailchimp API - 创建模板
问题描述
我想做什么:
我正在尝试根据本文档使用 Mailchimp API 创建模板(自定义 HTML) 。
到目前为止我尝试过的:
- 获取了我使用“拖放”创建的模板的原始 HTML。使用“您自己的代码”对其进行了测试。保存在应用程序脚本中的变量中。习惯了下面的代码,数据集作为那个变量。我收到以下错误
{instance=2fb8b5eb-f11c-4260-a958-f16e5bc7c98b, detail=提交的资源无法验证。有关特定于字段的详细信息,请参阅“错误”数组。,type= http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/,title=Invalid Resource,errors=[{field=,message =Schema 描述对象,发现 NULL 代替}], status=400}
- 然后我将数据设置为更简单的 HTML,如下所示。我得到了同样的错误。
我尝试使用已经创建的模板(通过 TEMPLATE_ID 访问)并尝试编辑它(只是模板的名称)。尽管我能够访问模板,但我遇到了同样的错误。我所做的更改是:
var TEMPLATE_ID = 'MY_TEMPLATE_ID'; var endpoint = 'templates/' + TEMPLATE_ID; var data = { 'name': 'new test name' }
在参数中
'method': 'PATCH'
我还尝试使用 GET 方法查看模板、活动、列表。我能够成功地做到这一点。
我在 SO 上查找了各种答案,其中一个建议使用合并字段,我也尝试过同样的错误。
var data = { 'name': 'Test Template', 'html': '<html><head></head><body><p>TEST</p><body></html>', 'mergefields': {} };
MWE:
function mailchimpCampaign(){
// URL and params for the Mailchimp API
var root = 'https://us19.api.mailchimp.com/3.0/';
var endpoint = 'templates';
var data = {
'name': 'Test Template',
'html': '<html><head></head><body><p>TEST</p><body></html>'
};
var payload = JSON.stringify(data);
// parameters for url fetch
var params = {
'method': 'POST',
'muteHttpExceptions': true,
'headers': {
'Authorization': 'apikey ' + API_KEY,
'content-type': 'application/json'
},
'data': payload
};
try {
// call the Mailchimp API
var response = UrlFetchApp.fetch(root + endpoint, params);
var data = response.getContentText();
var json = JSON.parse(data);
Logger.log(json);
}
catch (error) {
// deal with any errors
Logger.log(error);
};
}
任何帮助将不胜感激。谢谢。
解决方案
这是给未来的读者的。
因此,当我遇到这个错误时。我尝试使用UrlFetchApp.getRequest()
它,它告诉我那payload
是空的。
问题是我不得不payload
代替data
我正在使用的那个。
更新的工作代码:
var params = {
'method': 'POST',
'muteHttpExceptions': true,
'headers': {
'Authorization': 'apikey ' + API_KEY,
'content-type': 'application/json'
},
'payload': payload
};
推荐阅读
- reactjs - React + Typescript - 如何处理等待 API 完成
- ruby - 无法点击正在使用 Capybara 的链接
- python - 将 QML 信号连接到 PySide2 插槽
- javascript - Regx 看看后面不支持firefox
- asp.net - 用于 URL 重写的 IIS 配置引发 Http404 错误
- web-scraping - Scrapy 输出为空
- python - Python - 添加脚本以选择所有 pdf 文件
- python - Pandas 性能比较适用于地图
- sanity - 访问文件资产 url
- reactjs - 如何直接或使用异步将 reactstrap 轮播添加为子组件?