0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

商品画像一括アップロードAPIの書き方を教えてください。

Posted at

bizarchさんの「Yahoo!ショッピング 商品画像アップロードAPIでInternalServerError(500)になる」と同じになりますが、どうしてもエラーの原因がわからないので教えてください。

bizarchさんの問合せ
http://qiita.com/bizarch/items/d6bf9771c011bf8f4865

商品画像をまとめたZIPファイルを作り転送しようと考えています。
PHP内で画像をZIP圧縮するところまでは問題なくできています。
できたZIPファイルをストアクリエータProで送信したところ、問題なく商品に画像がつきました。

しかし商品画像一括アップロードAPI で送信したところ、InternalServerError(500)になったり、OKが出るが画像はならない状態となります。

【InternalServerError(500)になるとき】


<?xml version="1.0" encoding="UTF-8" ?>
<Error>
  <Message><![CDATA[システムエラーが発生しました。]]></Message>
  <Detail></Detail>
  <Code>ed-00001</Code>
</Error>

【正常に終わるが、画像は変わらないとき】


<?xml version="1.0" encoding="UTF-8" ?>
<ResultSet>
    <Result>
        <Status>OK</Status>
    </Result>
</ResultSet>

この2つの違いは、画像が増えたか減ったかです。

PHPでは次のように書いています。


$url = 'https://test.circus.shopping.yahooapis.jp/ShoppingWebService/V1/uploadItemImagePack';

$boundary = '---------------------------'.time();
$contentType = "Content-Type: multipart/form-data; boundary=" . $boundary;
$src = '';
$src .= "--$boundary" . "\r\n";
$src .= sprintf('Content-Disposition: form-data; name="file"; filename="%s"%s', basename($zfn), "\r\n");
$src .= 'Content-Type: application/octet-stream'. "\r\n";
$src .= 'Content-Transfer-Encoding: binary'. "\r\n";
$src .= file_get_contents(ZIPファイルのパス) . "\r\n";
$src .= "--$boundary--" . "\r\n";

$seller_id = ストアID;

$url = $url . '?seller_id=' . $seller_id;

$headers = array(
    $contentType,
    'Authorization: Bearer ' . $token['access_token'],
    'Content-Length: '.strlen($src),
);

$options = array('http' => array(
    'method'        => 'POST',
    'content'       => $src,
    'header'        => implode("\r\n", $headers),
    'ignore_errors' => true,
));

$contents = file_get_contents($url , false, stream_context_create($options));

なぜエラーになったりOKになったりするのでしょう?
またOKになっても、ストアクリエータProで確認すると画像管理には登録されません。

画像はどこにとんでいったのでしょう?

因みに「?seller_id=」を外したり、パラメータ名「file」を「zip」などに返るとそれなりのエラーが返ってきます。

よろしくお願い致します。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?