首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >axios和activeCampaign api的问题

axios和activeCampaign api的问题
EN

Stack Overflow用户
提问于 2022-08-23 17:41:02
回答 1查看 82关注 0票数 0

我已经创建了防火墙云功能来创建activeCampain中的联系人。我对来自activeCampaign的捕获错误有问题。如果我从失眠症直接向activeCampain发送请求,一切正常工作,但是如果我使用带axios的防火墙云函数,就会出问题。

我会给你看密码。我以前创建了一个联系人,现在它使用相同的数据直接对activeCampaign api进行另一个查询:

我得到了预期的结果。但是,如果通过firebase函数发出同样的请求,我会得到正确的状态代码,但我看不到activeCampaign的错误响应

FirebaseCloud函数代码:

代码语言:javascript
复制
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获得错误响应,以便在我的前端使用

EN

回答 1

Stack Overflow用户

发布于 2022-09-04 16:24:30

问题应该是这样的:

代码语言:javascript
复制
catch (error) {
    console.error('catch error', error);
    response.status(500);
    response.send({
        response: error.response.data,
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73462988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档