netlify - 如何使用 API v1 contact_sync/contact_add 将联系人添加到 ActiveCampaign
问题描述
我在向 ActiveCampaign 添加联系人时遇到问题。我在这里阅读了一篇文章:如何在 ActiveCampaign API v3 中将联系人添加到列表中,并且正在使用 API 的 v1。我尽我所能使用了他们的contact_sync文档。
我正在使用 Gatsby/React --> GitHub --> Netlify 进行开发,对 POST 请求使用 lamda 函数。
这是我的 axios POST:
{
method: 'post',
url: 'https://ACCOUNT.api-us1.com/admin/api.php?api_key=xxxxxxxxxxxx&api_action=contact_sync&api_output=json',
headers: { 'Content-Type': 'Content-Type: application/x-www-form-urlencoded' },
body: {
email: 'email@email.com',
first_name: 'John'
}
}
并收到以下回复:
{
result_code: 0,
result_message: 'Could not add contact; missing email address',
result_output: 'json'
}
我正在与他们的端点交谈。我只是不知道如何为端点提供电子邮件地址?
有没有人有一个他们愿意分享的工作示例?任何形式的指导将不胜感激!
解决方案
我想确保关闭它并分享我的答案。
非常感谢@reza jafari在这篇文章中的评论,他让我注意到Postman右边的代码窗口,您可以从下拉列表中选择语言/服务器,它提供格式正确的响应。
(我没有足够的声誉来支持@reza 的回复,所以想在这里承认它。)
我能够让我的帖子在 Postman 中工作,这个小技巧让我摆脱了困境。我将继续发布我的解决方案以关闭此帖子。
const axios = require("axios")
const qs = require("qs")
exports.handler = async function (event) {
const { email, first_name } = JSON.parse(event.body)
const data = qs.stringify({
email: email,
first_name: first_name,
tags: '"api"',
"p[1]": "1",
})
const config = {
method: "post",
url: "https://ACCOUNT.api-us1.com/admin/api.php?api_key=xxxxxxxxx&api_action=contact_sync&api_output=json",
headers: {
"Api-Token":
"xxxxxxxxx",
"Content-Type": "application/x-www-form-urlencoded",
},
data: data,
}
try {
const response = await axios(config)
return {
statusCode: 200,
body: JSON.stringify(response.data),
}
} catch (err) {
return {
statusCode: 500,
body: JSON.stringify(err),
}
}
}
推荐阅读
- c++ - 以 QMap 作为输入序列的 QtConcurrent map
- r - 为什么filled.contour() 中的轮廓线与contour() 中的轮廓线不完全相同?
- laravel-5 - Laravel 5 Auth::user() 除了 index() 函数和刀片模板外,其他地方都是空的
- ios - 当应用程序到达后台时如何保持计时器计数
- dart - Flutter: Future Builder fetch multiple data
- unity3d - 如何从不同的场景访问对象的组件?
- symfony - 无法使用 symfony ldap 连接到 ldap 服务器
- nhibernate - NHibernate 设置获取策略
- angular - 入口组件的 Angular 注册表
- regex - sed 删除第三个下划线之后的所有文本(包括第三个下划线)