我非常喜欢新的Mail Chimp REST -通过PUT创建订阅很容易,并且可以使用订阅id更新订阅。
但是我想简单地使用电子邮件地址来更新订阅,因为我不想在我的中间应用程序中保存任何新的Mail Chimp Id,只要电子邮件应该足够作为标识符吗?
要更新列表成员,API是:
/lists/{list_id}/members/{id}但我更喜欢一种更简单的方式:
/lists/{list_id}/members/{email}这样的事有可能吗?
发布于 2015-06-28 18:34:53
订阅者的ID是他们的电子邮件地址的MD5散列。由于您必须对URL进行函数调用,为您的第二种方式编码电子邮件地址,所以使用第一种方式也同样容易。
有关更多细节,请参见此关于管理订阅者的帮助文档。
发布于 2015-10-21 17:50:41
关于通过MailChimp的REST更新订阅者的更多细节。
// node/javascript specific, but pretty basic PUT request to MailChimp API endpoint
// dependencies (npm)
var request = require('request'),
url = require('url'),
crypto = require('crypto');
// variables
var datacenter = "yourMailChimpDatacenter", // something like 'us11' (after '-' in api key)
listId = "yourMailChimpListId",
email = "subscriberEmailAddress",
apiKey = "yourMailChimpApiKey";
// mailchimp options
var options = {
url: url.parse('https://'+datacenter+'.api.mailchimp.com/3.0/lists/'+listId+'/members/'+crypto.createHash('md5').update(email).digest('hex')),
headers: {
'Authorization': 'authId '+apiKey // any string works for auth id
},
json: true,
body: {
email_address: email,
status_if_new: 'pending', // pending if new subscriber -> sends 'confirm your subscription' email
status: 'subscribed',
merge_fields: {
FNAME: "subscriberFirstName",
LNAME: "subscriberLastName"
},
interests: {
MailChimpListGroupId: true // if you're using groups within your list
}
}
};
// perform update
request.put(options, function(err, response, body) {
if (err) {
// handle error
} else {
console.log('subscriber added to mailchimp list');
}
});
https://stackoverflow.com/questions/31100337
复制相似问题