お世話になっております。
現在Yahoo!ショップに自前のECサイトから商品データをAPI経由で登録しようとしております。商品登録APIを使って商品情報を登録することはできたのですが、商品画像のアップロードAPIではInternalServerErrorになり原因が分からず困っております。
下記のようなプログラムでAPIに送信しているのですが、
記述方法又は仕様について、間違っている点があれば、教えていただけますでしょうか。
どうぞ、宜しくお願いいたします。
補足としまして、testという商品コードの商品情報は登録済みで、
test.jpgをストアエディタ上から画像アップロードすると無事登録されることは
確認しました。seller_idは適当に変更しております。
define('IMG_UPLOAD_URL', 'https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImage');
define('CRLF', "\n");
$filename = "test.jpg";
$boundary = md5(date('U'));
$contentType = "Content-Type: multipart/form-data; boundary=" . $boundary;
$data = '';
$data .= "--$boundary" . CRLF;
$data .= "Content-Disposition: form-data; name=\"file\"; filename=\"{$filename}\"". CRLF;
$data .= 'Content-Type: application/octet-stream'. CRLF;
$data .= file_get_contents($filename). CRLF;
$data .= "--$boundary--" . CRLF;
$headers = array(
$contentType,
"Authorization:Bearer ".$access_token,
'Content-Length: '.strlen($data)
);
$options = array('http' => array(
'method' => 'POST',
'content' => $data,
'header' => implode(CRLF, $headers)
));
$contents = file_get_contents(IMG_UPLOAD_URL.'?seller_id=myshop', false, stream_context_create($options));