PHP中的这个curl请求有什么问题?
我正在尝试将一个示例curl请求写入PHPPHP中的这个curl请求有什么问题?,php,curl,Php,Curl,我正在尝试将一个示例curl请求写入PHP POST https://a.klaviyo.com/api/v1/list/{{ LIST_ID }}/members curl https://a.klaviyo.com/api/v1/list/dqQnNW/members \ -X POST \ -d api_key=API_KEY \ -d email=george.washington@example.com \ -d properties='{ "$first_name"
POST https://a.klaviyo.com/api/v1/list/{{ LIST_ID }}/members
curl https://a.klaviyo.com/api/v1/list/dqQnNW/members \
-X POST \
-d api_key=API_KEY \
-d email=george.washington@example.com \
-d properties='{ "$first_name" : "George", "Birthday" : "02/22/1732" }' \
-d confirm_optin=true
这是我写的代码。我没有得到的部分是如何输入电子邮件作为数据
$data_string =
'{
"email": "'.$email.'"
}';
$ch = curl_init("https://a.klaviyo.com/api/v1/list/$form_id/members?api_key=$mail_api_key");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
)
);
我得到的错误是
Array
(
[status] => 400
[message] => This request is missing the following required params: "email".
)
文档中的:“此参数可以作为urlencoded字符串(如'para1=val1¶2=val2&…)传递,也可以作为数组传递,字段名作为键,字段数据作为值。”
因此,您应该将json字符串更改为数组或数据。不要自己构建json。让PHP为您做这件事,即:$json['email']='the@mail.com'; $jsonString=json_encode($json)
我不认为CURLOPT_POSTFIELDS
需要JSON。@戈登,你刚刚改变了我的生活。@kevinkt,不客气:)
<?php
$email='test@gmmail.com';
$data_string =json_encode($email);
$form_id=5;
$mail_api_key=10;
$ch = curl_init("https://a.klaviyo.com/api/v1/list/$form_id/members?api_key=$mail_api_key");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'
)
);