0

尝试使用 PHP 使方形连接 API 图像上传工作。

我使用了方形连接 API 指南:docs.connect.squareup.com/api/connect/v1/#post-image

根据我在 StackOverflow 和 Google 搜索上的发现尝试了两种不同的方法。

方法1)常规curl请求: https ://gist.github.com/delalis/17c3c111e3b42df127ed

方法 2) 使用 CURLFile (php >=5.5 only) https://gist.github.com/delalis/5c7ecc2aaa024927b360

这两种方法都给了我来自服务器错误的空回复:

错误:“来自服务器的空回复” - 代码:52

我可以连接到square做其他功能没问题,但是图片上传被证明是相当困难的!

任何帮助将不胜感激。

4

1 回答 1

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'
    )
);
?>
于 2015-07-10T21:56:48.043 回答