我已经创建了防火墙云功能来创建activeCampain中的联系人。我对来自activeCampaign的捕获错误有问题。如果我从失眠症直接向activeCampain发送请求,一切正常工作,但是如果我使用带axios的防火墙云函数,就会出问题。
我会给你看密码。我以前创建了一个联系人,现在它使用相同的数据直接对activeCampaign api进行另一个查询:

我得到了预期的结果。但是,如果通过firebase函数发出同样的请求,我会得到正确的状态代码,但我看不到activeCampaign的错误响应
FirebaseCloud函数代码:
const functions = require("firebase-functions");
const axios = require("axios");
const cors = require("cors")({ origin: true });
const addTagToContact = async (contactId: string, tagId: string) => {
try {
await axios({
method: "post",
url: "https://xyz.api-us1.com/api/3/contactTags",
headers: {
"Api-Token": "api-token",
},
data: {
contactTag: {
contact: contactId,
tag: tagId,
},
},
enter code here
});
} catch (e) {
console.error(e);
}
};
export const createNewContact = functions.https.onRequest((request: { body: any; }, response: { status: (arg0: number) => void; send: (arg0: { response?: unknown; status?: string; }) => void; }) => {
cors(request, response, async () => {
const newContactData = request.body;
if(!newContactData.email || !newContactData.fieldValues) {
return response.send({
response: 'No contact data provided'
})
}
try {
const responseActiveCampaign = await axios({
method: "post",
url: "https://xyz.api-us1.com/api/3/contacts",
headers: {
"Api-Token": "api-token",
"Content-Type": "application/json"
},
data: {
contact: newContactData,
},
});
console.log('response active campaign console log', responseActiveCampaign)
await addTagToContact(responseActiveCampaign.data.contact.id, "1")
return response.send({
response: responseActiveCampaign.data
})
} catch (error) {
console.error('catch error', error);
response.status(500);
response.send({
response: error,
});
}
});
});来自此查询的响应:

我怎么才能修好它?我希望从activeCampaign获得错误响应,以便在我的前端使用
发布于 2022-09-04 16:24:30
问题应该是这样的:
catch (error) {
console.error('catch error', error);
response.status(500);
response.send({
response: error.response.data,
});
}https://stackoverflow.com/questions/73462988
复制相似问题