嗨,我试图使用我的网站上的自定义表单添加一个新的联系人到我们的营销列表,每个联系人将包含一个电子邮件和名字。
我尝试遵循此文档,但没有成功:https://sendgrid.api-docs.io/v3.0/contacts/add-or-update-a-contact
我试过使用他们的工具,但它总是说不正确的JSON,但当我使用在线验证器,它说正确的,我不知道如何匹配他们的,让我的请求张贴。
这是我的当前代码:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.sendgrid.com/v3/marketing/contacts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => "{\"list_ids\":[\"bf3ce5bd-14a2-414b-9b81-*****8e8ea62\"],\"contacts\":[{\"email\":\"$email\",\"first_name\":\"$first_name\"]}",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer SG.OCFHb********P3iuikQ.bqKdM-da7X609ZNo9UT7y*********u5fDlfQo80o",
"content-type: application/json"
),
));
3条答案
按热度按时间58wvjzkj1#
您只需在
$first_name
之后添加}
字符。这是有效的JSON:
您可以通过https://jsonformatter.curiousconcept.com/验证器网站进行检查。
2admgd592#
不必处理所有反斜杠和转义的一个小技巧是在PHP中使用预定义的对象文字,通过使用前面带有(object)的数组来定义嵌套在结构中的对象。
json_encode
将其转换为JSONCURLOPT_POSTFIELDS
中输入编码的JSON对象。oprakyz73#
这是最好的办法: