通过HTML表单+ JavaScript将JSON结构提交到MailChimp API

时间:2014-06-06 16:36:23

标签: javascript json mailchimp

感谢你的帮助,我确信这是一个真正的基本头脑。我正在设置一个简单的Web前端,以便我可以检查电子邮件地址是否已经是现有MailChimp列表的订阅者。现在我想使用基本的HTML&的JavaScript。

我的MailChimp API密钥检出,我可以运行只需要字符串数据的查询,但相关的API调用需要一个电子邮件地址的结构,并且我在以下代码的任何变体中都会收到错误。我已经安装了node.js,只是从命令行运行它,查询确实可以使用相同的数据,所以我确定我只是这个关闭,但需要你帮助克服困难。

以下是脚本和表单的相关摘要。如上所述,我在回复中收到以下错误消息:验证错误:{\“email \”:\“请输入struct \ / associative array \”}“}

<script type="text/javascript">
function collectAndSubmit() {
        var emailAddy = document.getElementById("emailAddy").value;
        var JSONemail = {"email":
                            {
                                "email": emailAddy
                            }
                        };
        document.getElementById("email").value = JSONemail;
        document.getElementById("apikey").value ="M*Y*A*P*I*K*E*Y"
        document.testform.submit();
}
</script>
</head>
<body>
<form action="https://us2.api.mailchimp.com/2.0/helper/lists-for-email" method="post" name="testform">
    Email Address: <input type="text" id="emailAddy" name="emailAddy" />
    <input type="hidden" id="apikey" name="apikey" />
    <input type="hidden" id="email" name="email" />
    <br>
    <input type="button" value="Check Email" onclick="collectAndSubmit()" />
</form>
</body>
</html>

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

您的表单不正确。你可以看看他们的documentation。你必须设置他们称之为email struct的实际上是一个数组。您的电子邮件输入属性应如<input type="text" id="email" name="email[email]">

注意email[email]它会使数据看起来像"email": {"email": "input value"}

此外,如果您的api密钥应该是秘密,那么将其隐藏在html表单中并不是一个好主意。