我想在我的应用程序中将数据发布到我创建的 mailchimp 帐户和 mailchimp ID中,并获取API KEY
。现在,我想在发送数据时使用php CURL
方法在 mailchimp 上发布数据,它显示类似
发布数据参数
注意:在使用CURL
提取数据时,这是非常好的。
任何身体帮助如何解决这个问题。
这是我的方法
public function callAPI($method, $url, $data=null)
{
$curl = curl_init();
switch ($method)
{
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
default:
if($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
$headers = array(
"Authorization: Basic b3dhaXNfdGFhcnVmZjo5MzM1M"
);
curl_setopt_array($curl,
[
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_HEADER => true,
CURLOPT_URL => $url.'?apikey=this is api key'
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
这是存储功能
public function store(Request $request)
{
$data_array = '
{
"id": "PRS08",
"title": "108",
"handle": "108",
"url": "http://boksha.eshmar.com/product/hoodie-kaftan-1",
"description": "",
"type": "Abaya",
"vendor": "TALAR NINA",
"image_url": "http://boksha.eshmar.com/uploads/products/140/images/cropped/1512195907.png",
"variants":
[
{
"id": "PROD003A",
"title": "variants 1",
"url": "",
"sku": "",
"price": 280,
"inventory_quantity": 100,
"image_url": "http://boksha.eshmar.com/uploads/products/140/images/cropped/1512195907.png",
"backorders": "0",
"visibility": "visible",
"created_at": "2016-02-08T13:06:44+00:00",
"updated_at": "2016-02-08T13:06:44+00:00"
},
{
"id": "PROD003B",
"title": "variants 2",
"url": "",
"sku": "",
"price": 280,
"inventory_quantity": 99,
"image_url": "http://boksha.eshmar.com/uploads/products/140/images/cropped/1512195907.png",
"backorders": "0",
"visibility": "true",
"created_at": "2016-02-08T22:14:37+00:00",
"updated_at": "2016-02-08T22:22:38+00:00"
}
]
}';
$url = "https://us7.api.mailchimp.com/3.0/";
$data = $this->callAPI('POST', $url, $data_array);
echo "<pre>";
print_r($data);
}
答案 0 :(得分:0)
我看到两件事可能是个问题。
首先-将内容类型添加到标题中。看来您正在尝试发布json字符串,因此您的标头将声明为合理。
$headers = array(
'Authorization: Basic b3dhaXNfdGFhcnVmZjo5MzM1M',
'Content-Type: application/json' //Addded the content type as json.
);
第二-您发送的json字符串无效。您需要删除字符串中最后一个元素的逗号。
$data_array = '
{
"id": "PRS08",
"title": "Php Curl",
"name": "Shahid Hussain",
"url": "http://fstnv.com",
"description": "This is test data"
}'; //Removed the comma after last element. Otherwise the json is invalid.
看看是否有帮助。
答案 1 :(得分:0)
请检查终点, 端点不正确。
根据邮递区号,终点应如下所示
https://us7.api.mailchimp.com/3.0//ecommerce/stores/store_001/products
更新相同。