qii-yah
@qii-yah

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

YahooショッピングAPIについて

解決したいこと

Yahooショッピングの商品参照APIの設定について
アクセストークン取得までは問題なく取得できていますが、
(ショッピングAPIにリクエストをする。)段階で上手くいきません。

現状

マニュアル通り記述しましたが、結果が空白で画面に何も反映しません。
(以下記述ファイルをphp保存し、パソコンのChromeアドレスバーに
<call2.php>として発信(たたき)しました。
対処方法ご存じの方いらっしゃいましたら
お教えいただけます様お願い申し上げます。

記述内容

<ストアアカウント><商品コード><アクセストークン>は
作成したファイルでは実際のデータで記載しました。
<ストアアカウント><商品コード>も何度も、実在、現在公開中であることは確認済みです。

##############
以上ですがよろしくお願い申し上げます。

0

2Answer

質問内容に切り分けに必要な内容がほぼありません。
最低限記述したアクセスに使用したコードとエラーメッセージを記述することをおすすめします。

*個人的な感想ですが、APIは他者のリソースを使わせてもらう技術なので、ドキュメントが理解でき、デバックが自身で出来る程度の技術が身につくまで使用すべきでは無いです。

0Like

Comments

  1. @qii-yah

    Questioner

    早速のご連絡ありがとうございます。
    本日初めてこのサイトに登録し、質問させていただいたため不慣れで申し訳ありません。
    ●アクセスに使用したコード(以下)
    ●マニュアル通り記述しましたが、結果が空白で画面に何も反映しません。
    (以下記述ファイルをphp保存し、パソコンのChromeアドレスバーに
    <call2.php>として発信(たたき)しました。
    ●<ストアアカウント><商品コード><アクセストークン>は
    作成したファイルでは実際のデータで記載しました。
    <ストアアカウント><商品コード>も何度も、実在、現在公開中であることは確認済みです。
    ●エラーメッセージ:結果が空白で画面に何も反映しません。
    コードを記載しても反映しませんでしたので画像で添付させていただきました。
    ご存じの方お教えいただけます様よろしくお願い申し上げます。code.png

    ------------------アクセスに使用したコード(以下)------------------

    1. 'GET /ShoppingWebService/(略)' はヘッダではないので $header には含められません。また 'Host: (略)' も curl が自動で付与するので不要です。
      • Yahoo ショッピング API 本家のサンプルコードを引用なさったようですが、(信じがたいことに)サンプルコード自体間違っています。
      • GET を含められないことは curl の CURLOPT_HTTPHEADER のマニュアルに書いてあります。
        • The first line in an HTTP request (containing the method, usually a GET or POST) is not a header and cannot be replaced using this option. Only the lines following the request-line are headers.

    2. 取得した $response を表示するコードがないので結果が空白になるのは当然です。レスポンスは XML 文字列なので、エスケープして全文表示するには echo(htmlspecialchars($response, ENT_XML1)); としてください。 XML から必要な情報だけ取り出して表示するには $responseSimpleXML などでパースしてください。
  2. @qii-yah

    Questioner

    早速のご連絡誠にありがとうございます。
    今から直ぐに試してみます。
    ありがとうございました。

@uasi
この度はお世話になりありがとうございます。
何度も試したのですが、今度はエラー表示になってしまいます。

もしよろしければ、アドバイスいただけます様
よろしくお願い申し上げます。

0Like

Comments

  1. まず回答以前の話として、アクセストークンは公開しないでください。他人に利用される危険があります。公開してしまったアクセストークンは再発行してください。

    本題ですが、 Authorization ヘッダの書式は Authorization: Bearer アクセストークン です。 Bearer とアクセストークンの間は半角スペースで区切ります。質問のコードでは = . となっていて、イコールとピリオドが余計です。

  2. @qii-yah

    Questioner

    @uasi 様
    この度はお世話になりありがとうございます。
    遅い時間ですのにアドバイスありがとうございます。
    アクセストークンは投稿から削除いたしました。
    このレベルで本当に申し訳ありません。
    今から再度、試します。
    一旦失礼いたします。

  3. @qii-yah

    Questioner

    @uasi 様
    できました!!
    感動しました!!!
    本当にありがとうございます。
    嬉しくて見ていただきたいので初めての表示結果.png
    表示された画面を添付させていただきます。(固有情報はマーキングしたつもりです)
    この表示ができなかったことで2週間も経過してしてしまっておりました。
    まさかyahooのサンプルソースが間違っているとは思いませんでした。
    なかな表示できなくてテンションが下がる一方で
    本日、正直、ダメ元でこのサイトに初めて登録させていただき
    質問を投稿させていただきました。
    @uasi 様の様に具体的なアドバイスが初めてで
    本当にありがとうございました。
    そもそも自分の知識不足が問題なので、既に勉強は開始していますが、もっと頑張ります!
    ありがとうございました!

  4. @qii-yah

    Questioner

    @uasi 様
    おはようございます。
    昨日教えていただいた「レスポンスは XML 文字列」ですが
    これを「JSON形式」にすることは可能なものでしょうか?
    自身でトライしてみましたが上手くいかず質問させていただきました。
    恐れ入りますが、もしご存じであれば教えていただけます様
    お願い申し上げます。

  5. @qii-yah 動いたようで良かったです!レスポンス形式についてですが、 JSON で取得する方法はなさそうです。

  6. @qii-yah

    Questioner

    @uasi 様
    おはようございます。
    早速のご返事ありがとうございます。
    JSONでも設定できるとすっかり誤解していました。
    これもエラーの原因だったのですね。
    本当にありがとうございます。

Your answer might help someone💌