Mailchimp API使用node.js添加对类别的兴趣

问题描述

我正在创建一个带有多选下拉菜单订阅表单,用户可以在其中选择他们的兴趣,提交表单时,他们的详细信息将存储在MailChimp受众列表中,而他们选择的兴趣将存储在兴趣组中。

在这种情况下,兴趣类别为“流派”,如下所示:

enter image description here

兴趣爱好如下:

enter image description here

这个想法是能够以复选框的形式(如标准的MailChimp嵌入式形式)或在我的情况下从一组选项中选择兴趣选项,然后将兴趣如下存储在MailChimp中:

enter image description here

按照我在YouTube上观看的教程,到目前为止,我已经成功使用node.js中的API在MailChimp中存储了用户的名字,姓氏和电子邮件地址。但是,我正在努力寻找如何在兴趣类别中添加新兴趣的帮助,因为在node.js中只有很少的指导,尤其是对于像我这样的新手程序员。

请在下面查看我的标记和app.js代码

标记

            <form action="/signup" method="POST">
                <div class="form-group">
                    <input 
                        type="text"
                        name="firstName"
                        id="first-name"
                        class="form-control form-rounded" 
                        placeholder="First Name"    
                    />
                </div>
                <div class="form-group">
                    <input 
                        type="text"
                        name="lastName"
                        id="last-name"
                        class="form-control form-rounded" 
                        placeholder="Last Name"    
                    />
                </div>
                <div class="form-group">
                    <input 
                        type="email"
                        name="email"
                        id="email" 
                        class="form-control form-rounded"
                        placeholder="Email"
                    />
                    <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
                </div>
                <fieldset class="form-group">

                    <legend>Pick your favourite 3 genres</legend>

                    <div class="form-group">

                            
                            <select name="genres" id="genres" class="selectpicker" multiple>
                            <optgroup data-max-options="3">
                                <option value="breaks" class="breaks-click">Breaks</option>
                                <option value="deephouse" class="deep-click">Deep House</option>
                                <option value="disco" class="disco-click">disco</option>
                                <option value="drumnbass" class="dnb">Drum & Bass</option>
                                <option value="dubstep" class="dubstep">dubstep</option>
                                <option value="electro" class="electro">Electro</option>
                                <option value="house" class="house">House</option>
                                <option value="proghouse" class="proghouse">Progressive House</option>
                                <option value="techhouse" class="techhouse">Tech House</option>
                            </optgroup>

                            </select>

         
                        </div>

                </fieldset>
                
                <button type="submit" class="btn btn-primary" id="quenden">Do it!</button>
            </form>
        </div>
    </section>
</div>

node.js

const express = require('express');
const request = require('request');
const bodyParser = require('body-parser');
const path = require('path');

const app = express();

// Bodyparser Middleware
app.use(bodyParser.urlencoded({extended: true}));

// Static folder
app.use(express.static(path.join(__dirname,'public')));

// Signup Route
app.post('/signup',(req,res) => {
    const { firstName,lastName,email } = req.body;

    // Make sure fields are filled
    if(!firstName || !lastName || !email) {
        res.redirect('/fail.html');
        return;
    }

    // Construct req data
    const data = {
        members: [
            {
                email_address: email,status: 'subscribed',merge_fields: {
                    FNAME: firstName,LNAME: lastName,},}
        ]
    };

    const postData = JSON.stringify(data);

    const options = {
        url: 'https://us2.api.mailchimp.com/3.0/lists/{list_id}',method: 'POST',headers: {
            Authorization: 'auth {api_key}'
        },body: postData
    }; 

    request(options,(err,response,body) => {
        if(err) {
            res.redirect('/fail.html');
        } else {
            if(response.statusCode === 200) {
                res.redirect('/success.html');
            } else {
                res.redirect('/fail.html');
            }
        }
    });
});

const PORT = process.env.PORT || 5000;

app.listen(PORT,console.log(`Server started on ${PORT}`));

我在node.js中获得了有关MailChimp API的帮助的教程(https://www.youtube.com/watch?v=Gjk25N7WFkI),如上所述,借助该视频,我成功地存储了订户的数据,但是我只需要找出如何使用API​​来添加兴趣类别,如下面的api文档所述。不幸的是,我正在努力实现它:

enter image description here

我们将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)