Node.js 使用Mailchimp API
我想使用我的应用程序中的来为用户订阅邮件列表。Parse不支持NPM,但是,考虑到Mailchimp API没有依赖项,我想我可以将代码复制到我的项目中。然而,Mailchimp API使用了Parse不支持的“https”模块Node.js 使用Mailchimp API,node.js,express,parse-platform,mailchimp,Node.js,Express,Parse Platform,Mailchimp,我想使用我的应用程序中的来为用户订阅邮件列表。Parse不支持NPM,但是,考虑到Mailchimp API没有依赖项,我想我可以将代码复制到我的项目中。然而,Mailchimp API使用了Parse不支持的“https”模块 有人知道解决这个问题的方法吗?我无法直接使用Mailchimp API,但REST API非常容易使用 在main.js中,创建一个云函数。输入API密钥并更新REST URL以指向正确的Mailchimp数据中心() var mailchimpApiKey=“”; d
有人知道解决这个问题的方法吗?我无法直接使用Mailchimp API,但REST API非常容易使用 在main.js中,创建一个云函数。输入API密钥并更新REST URL以指向正确的Mailchimp数据中心()
var mailchimpApiKey=“”;
define(“SubscribeUserToMailingList”,函数(请求、响应){
如果(!request.params)||
!request.params.email){
响应。错误(“必须向Mailchimp注册提供电子邮件地址、名字和姓氏”);
返回;
}
变量数据={
apikey:mailchimpApiKey,
id:request.params.listid,
电邮:{
电子邮件:request.params.email
},
合并变量:request.params.mergevars
}
变量url=”https://.api.mailchimp.com/2.0/lists/subscribe.json";
Parse.Cloud.httpRequest({
方法:“POST”,
url:url,
正文:JSON.stringify(mailchimpData),
成功:函数(httpResponse){
log(httpResponse.text);
响应。成功(“成功订阅”);
},
错误:函数(httpResponse){
console.error('请求失败,响应代码'+httpResponse.status);
错误(httpResponse.text);
response.error('Mailchimp订阅失败,响应代码为'+httpResponse.status');
}
});
});
然后,在调用此函数的代码中。。。(替换您的列表ID)
Parse.Cloud.run(“subscribeeusertomailglist”{
列表ID:“”,
电邮:电邮,,
合并变量:{
FNAME:firstName,
LNAME:姓氏
}
})
.然后(功能(成功){
console.log(“成功订阅”);
// ...
},
函数(错误){
console.log(“无法订阅”);
// ...
});
npm install mailchimp-api
不要忘记在控制器顶部添加
$http
$http({
method : 'POST',
url : '/mailchimp-users/subscribe',
data : {user:this.name}}).
success(function(response) {
console.log("hai this is basic test" + response);
$scope.send = response.message;
}).error(function(response) {
$scope.error = response.message;
});
var MailchimpUser = mongoose.model('MailchimpUser'),
_ = require('lodash'),
mcapi = require('mailchimp-api');
var apiKey = '4bf6fb8820c333da4179216c3c2ef8fb-us10';
// Change this to your Key
var listID = 'ebbf193760';
var mc = new mcapi.Mailchimp(apiKey, {version: '2.0'});
添加此功能
exports.subscribe = function(req, res) {
var entry = req.body.user;
var mcReq = {
apikey: '4bf6fb8820c333da4179216c3c2ef8fb-us10',
id: 'ebbf193760',
email: {email: entry + '@gmail.com'},
merge_vars: {
FNAME: 'subscriber-first-name',
LNAME: 'subscriber-last-name'
},
'double_optin': false,
'send_welcome': true
}
// submit subscription request to mail chimp
mc.lists.subscribe(mcReq, function(data) {
console.log(data);
}, function(error) {
console.log(error);
});
};
app.route('/mailchimp-users/subscribe')
.post(mailchimpUsers.subscribe);
下面是我如何使用MailChimp API v3.0实现的,下面的方法支持添加/更新订阅者,以及将订阅者添加到组中/从组中删除订阅者 先决条件: 您需要使用MD5哈希方法将用户的电子邮件转换为哈希
- 这是我用过的一个:
- 复制链接中的代码,并将其粘贴到新创建的文件中,例如,将其命名为“md5js.js”
- 更新复制的代码,以
exports.MD5=函数(字符串){
- 通过将结果与此在线工具进行比较,可以测试从复制/粘贴模块获得的转换:
var jsmd5=require('cloud/md5js.js');
//这里用您自己的数据中心替换它(通过查看API密钥)。
var datacenter=“us13”;
var MAILCHIMP_URL=“https://:@”+datacenter+”.api.MAILCHIMP.com/3.0/”;
var MAILCHIMP_列表_通讯_ID=;
define(“SubscribeUserToMailingList”,函数(请求、响应){
如果(!request.params)||
!request.params.email){
响应。错误(“必须向Mailchimp注册提供电子邮件地址、名字和姓氏”);
返回;
}
var email=request.params.email;
var firstName=request.params.firstName;
var lastName=request.params.lastName;
//这会将电子邮件字符串转换为MD5哈希。
//如果您想使用允许添加/更新条目的“PUT”,与只允许添加新订户的POST相比,这是必需的。
var emailHash=jsmd5.MD5(电子邮件);
变量数据={
“电子邮件地址”:电子邮件,
“状态”:“已订阅”,
“合并字段”:{
“FNAME”:名字,
“LNAME”:姓氏
},
“利益”:{
“”:true//如果要将用户添加到“组”,则为可选。
}
};
var url=MAILCHIMP\u url+“列表/”+MAILCHIMP\u列表\u时事通讯\u ID+“/成员/”+emailHash;
//使用“PUT”可以添加/更新条目。
Parse.Cloud.httpRequest({
方法:'放',
url:url,
正文:JSON.stringify(mailchimpData),
成功:函数(httpResponse){
log(httpResponse.text);
响应。成功(“成功订阅”);
},
错误:函数(httpResponse){
console.error('请求失败,响应代码'+httpResponse.status);
错误(httpResponse.text);
response.error('Mailchimp订阅失败,响应代码为'+httpResponse.status');
}
});
})这应该是可以接受的答案。另外,您的数据中心是mail chimp api密钥的最后3个字符。我花了一分钟在文档中找到了这句话。您是否碰巧为Mailchimp api 3.0更新了这句话?@Ace Green:我为Mailchimp api 3.0添加了代码
exports.subscribe = function(req, res) {
var entry = req.body.user;
var mcReq = {
apikey: '4bf6fb8820c333da4179216c3c2ef8fb-us10',
id: 'ebbf193760',
email: {email: entry + '@gmail.com'},
merge_vars: {
FNAME: 'subscriber-first-name',
LNAME: 'subscriber-last-name'
},
'double_optin': false,
'send_welcome': true
}
// submit subscription request to mail chimp
mc.lists.subscribe(mcReq, function(data) {
console.log(data);
}, function(error) {
console.log(error);
});
};
app.route('/mailchimp-users/subscribe')
.post(mailchimpUsers.subscribe);