Я пытаюсь обновить интерес пользователей MailChimp, когда они подписываются на мое приложение. Проблема в том, что когда пользователь регистрируется, он добавляется в другую группу / интерес, и когда я пытаюсь изменить идентификатор этой группы, в Google Cloud Function появляется следующая ошибка:
Error: The requested method and resource are not compatible. See the Allow header for this resource's available methods.
at Request._callback (/srv/node_modules/mailchimp-api-v3/index.js:515:30)
at Request.self.callback (/srv/node_modules/request/request.js:185:22)
at emitTwo (events.js:126:13)
at Request.emit (events.js:214:7)
at Request.<anonymous> (/srv/node_modules/request/request.js:1161:10)
at emitOne (events.js:116:13)
at Request.emit (events.js:211:7)
at IncomingMessage.<anonymous> (/srv/node_modules/request/request.js:1083:12)
at Object.onceWrapper (events.js:313:30)
at emitNone (events.js:111:20)
at IncomingMessage.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:139:11)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
Я пытался выполнить запрос post
, после чего он сообщает, что пользователь уже является членом списка.
Функция добавления пользователя в interests
:
exports.userCreated = functions.auth.user().onCreate(async (user) => {
const email = user.email;
// const displayName = user.name;
// make Mailchimp POST API request to add user to the audience
try {
const results = await mailchimp
.post('/lists/fb5c181de4/members', {
email_address: email,
status: 'subscribed',
// optional: requires additional setup
merge_fields: {
"EMAIL": email, // Send data in to merge_fields EMAIL URL Mailchimp
},
"interests": {
"49f3316189" : true,
}
});
console.log('Successfully added new Firebase user', email, 'to Mailchimp list', results);
return null;
}
catch (err) {
console.log(email);
console.log('Mailchimp: Error while attempting to add registered subscriber —', err);
return null;
}
});
Функция обновления пользователя interests
:
try {
const results = mailchimp
.put('/lists/fb5c181de4/members', {
email_address: email,
status: 'unsubscribed',
// optional: requires additional setup
merge_fields: {
"EMAIL": email, // Send data in to merge_fields EMAIL URL Mailchimp
},
"interests": {
"91fcc0245e" : true,
"49f3316189" : false
}
});
console.log('Successfully added new Firebase user subscribed', email, 'to Mailchimp list', results);
}
catch (err) {
console.log(email);
console.log('Mailchimp: Error while attempting to add registered subscriber —', err);
return null;
}
return { success: true };
},
err => {
console.log("the error", err);
return { error: err, message: "there was an error", success: false };
}
)