【问题标题】:Square Connect API - image upload - Empty Reply From Server code 52 errorSquare Connect API - 图片上传 - 来自服务器代码 52 错误的空回复
【发布时间】:2016-04-02 05:14:25
【问题描述】:

尝试使用 PHP 让 Square Connect API 图像上传工作。

我使用了 square connect 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做其他功能没有问题,但是图片上传被证明是相当困难的!

任何帮助将不胜感激。

【问题讨论】:

    标签: square-connect


    【解决方案1】:

    这是一个我经常与人们分享的 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'
        )
    );
    ?>
    

    【讨论】:

    • 谢谢特洛伊。终于用这个例子让它工作了......还想知道是否可以批量上传图片请求?我试图这样做,它给出了这个错误:“不支持这个请求的内容类型。支持的类型:多部分/表单数据”........我想这是有道理的。所以问题仍然存在:有可能吗?或者我应该尝试在图像上传请求之间使用一到两秒的超时时间。
    • 不幸的是,批处理 API 不适用于这个特定的端点。我建议只提出个人要求。速率限制不是固定的,但我会尽量不超过每分钟 100 个请求。如果您从服务器收到 429,则需要撤回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-05
    • 2010-12-27
    • 1970-01-01
    • 2020-03-17
    • 2023-03-24
    • 2015-11-05
    • 1970-01-01
    相关资源
    最近更新 更多