尝试使用PHP进行方形连接API图像上传工作。
我使用了square connect API指南:docs.connect.squareup.com/api/connect/v1/#post-image
根据我在StackOverflow和Google上搜索的内容尝试了两种不同的方法。
方法1)定期卷曲请求: https://gist.github.com/delalis/17c3c111e3b42df127ed
方法2)使用CURLFile(仅限php> = 5.5) https://gist.github.com/delalis/5c7ecc2aaa024927b360
这两种方法都给了我来自服务器错误的空回复:
错误:"来自服务器"的空回复 - 代码:52
我能连接到广场做其他功能没问题,但图像上传却证明是相当困难的!
非常感谢任何帮助。
答案 0 :(得分:0)
这是我通常与人分享的一个有用的PHP示例: https://gist.github.com/tdeck/7118c7128a4a2b653d11
<?php
function uploadItemImage($url, $access_token, $image_file) {
$headers = ["Authorization: Bearer $access_token"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ['image_data' => "@$image_file;type=image/jpeg"]);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$return_status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
print "POST to $url with status $return_status\n";
curl_close($ch);
return $data ? json_decode($data) : false;
}
print_r(
uploadItemImage(
'https://connect.squareup.com/v1/me/items/ITEM_ID/image',
'ACCESS_TOKEN',
'IMAGE_FILE.jpg'
)
);
?>