在PHP中使用CURL在Shopify中添加产品图片- Cloudflare错误

7z5jn7bk  于 2022-11-13  发布在  PHP
关注(0)|答案(1)|浏览(143)

我尝试在PHP中使用CURL添加图片到我的产品中,基于以下内容:https://shopify.dev/api/admin-rest/2022-07/resources/product-image#post-products-product-id-images
这是使用CURL CLI时的样子,但我尝试通过PHP使用它:

curl -d '{"image":{"src":"http://example.com/rails_logo.gif"}}' \
-X POST "https://your-development-store.myshopify.com/admin/api/2022-07/products/632910392/images.json" \
-H "X-Shopify-Access-Token: {access_token}" \
-H "Content-Type: application/json"

我已经尝试了一些不同的格式,但不断得到以下格式的Cloudflare错误:

$ch = curl_init("https://STORENAME.myshopify.com/admin/api/2022-07/products/632910392/images.json");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Shopify-Access-Token: SECRETTOKEN"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PUT, true);
curl_setopt($ch, CURLOPT_URL, "http://example.com/rails_logo.gif");
curl_setopt($ch, CURLOPT_INFILE, "http://example.com/rails_logo.gif");
curl_setopt($ch, CURLOPT_POSTFIELDS,'{"image":{"position":'1',"src":"http://example.com/rails_logo.gif"}}');
$responseTmp = curl_exec($ch);

我从Cloudflare得到“BAD REQUEST”和“1020”错误,我想是因为我的请求中的一些内容格式不正确。
非常感谢你的建议。

wqsoz72f

wqsoz72f1#

万一它帮助其他人进一步跟踪-这是Shopify如何期望通过php curl上传图像:

$image = json_encode(array('image'=> array('src' => $imageUrl)));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $image);

相关问题