【发布时间】:2013-11-09 09:39:15
【问题描述】:
发出此请求时:
// Subscribe a new account holder to a MailChimp list
function subscribeSomeoneToMailChimpList()
{
var options =
{
"apikey": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"id": "xxxxxx",
"email":
{
"email": "me@example.com"
},
"send_welcome": false
};
var mcSubscribeRequest = UrlFetchApp.fetch("https://us4.api.mailchimp.com/2.0/lists/subscribe.json", options);
var mcListObject = Utilities.jsonParse(mcSubscribeRequest.getContentText());
}
返回此响应:
对https://us4.api.mailchimp.com/2.0/lists/subscribe.json 的请求失败,返回代码 500。截断的服务器响应:{"status":"error","code":-100,"name":"ValidationError","error":"您必须指定一个apikey value"}(使用 muteHttpExceptions 选项检查完整响应)(第 120 行,文件“v2”)
第 120 行是调用 UrlFetchApp.fetch 的行。
API 密钥是有效的(我已经使用不包含关联数组的更简单的 API 调用进行了测试)。当我将 API 密钥直接附加到基本 URL 并将其从 options 中删除时,我收到一条错误消息,指出列表 ID 无效。然后,当我将列表 ID 直接附加到基本 URL 并将其从 options 中删除时,我收到一条错误消息,指出电子邮件地址必须采用关联数组形式。
我的问题是:使用上述格式,如何发送包含关联数组的请求?
相关API文档可以在here找到。
【问题讨论】:
-
在客户端代码中公开 API 密钥的坏主意:(
-
@Maxim,此代码用于私有 Google 脚本。那还有风险吗?
-
我不确定 Google 如何保护它,但我来宾它已经足够好了。这完全取决于您需要多少安全性。在某些情况下,我什至会在我的服务器端代码中加密密码。
-
这道题的题目更准确的说是Google App Script + MailChimp API。否则,Javascript 新手可能最终会在客户端代码中使用答案,从而暴露他们的 MailChimp API。
标签: javascript api mailchimp