0

PHP を使用して Square Connect API の画像アップロードを機能させようとしています。

Square Connect API ガイドを使用しました: docs.connect.squareup.com/api/connect/v1/#post-image

StackOverflow と Google 検索で見つけたものに基づいて、2 つの異なる方法を試しました。

方法 1) 通常の curl リクエスト: https://gist.github.com/delalis/17c3c111e3b42df127ed

方法 2) CURLFile を使用する (php >=5.5 のみ) 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 に答える