如何在 mailchimp rest api 中更新没有 ID 的订阅
how to update an subscription without id in mail chimp rest api
我真的很喜欢新的 Mail Chimp REST API - 通过 PUT 创建订阅很容易,并且可以使用订阅 ID 更新订阅。
但我想简单地使用电子邮件地址更新订阅,因为我不想在我的中间件应用程序中保存任何新的 Mail Chimp Id,只要电子邮件足以作为标识符?
要更新列表成员,API 是:
/lists/{list_id}/members/{id}
但我更喜欢更简单的方法:
/lists/{list_id}/members/{email}
这样的事情可能吗?
订阅者的 ID 是其电子邮件地址的 MD5 哈希值。由于您必须调用 URL 的函数来为您的第二种方式对电子邮件地址进行编码,因此使用第一种方式同样简单。
有关详细信息,请参阅此 help document on managing subscribers。
关于更新订阅者到 MailChimp 结果的更多细节 API。
// 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');
}
});
我真的很喜欢新的 Mail Chimp REST API - 通过 PUT 创建订阅很容易,并且可以使用订阅 ID 更新订阅。
但我想简单地使用电子邮件地址更新订阅,因为我不想在我的中间件应用程序中保存任何新的 Mail Chimp Id,只要电子邮件足以作为标识符?
要更新列表成员,API 是:
/lists/{list_id}/members/{id}
但我更喜欢更简单的方法:
/lists/{list_id}/members/{email}
这样的事情可能吗?
订阅者的 ID 是其电子邮件地址的 MD5 哈希值。由于您必须调用 URL 的函数来为您的第二种方式对电子邮件地址进行编码,因此使用第一种方式同样简单。
有关详细信息,请参阅此 help document on managing subscribers。
关于更新订阅者到 MailChimp 结果的更多细节 API。
// 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');
}
});