YahooのオークションAPIに関する質問です。

キーワードから商品情報をjson形式で取得してhtmlに情報を挿入したいのですがうまくいきません。
アドバイス頂ければと思います。

■load.php
<?php
$url = $_GET['request'];
header("Content-type: application/xml; charset=UTF-8");
readfile($url);
?>

■script部
var yahoo = "load.php?request=http://auctions.yahooapis.jp/AuctionWebService/V2/search?appid=○○○&output=xml&order=a&sort=cbids&query=";

$(function() {
var key = "サッカー" //←実際はUTFにエンコードされています
var url = yahoo + key;
$.getJSON(
url,
function(html) {
$("#list").append($(html).find("Title").text());
});
});


■html部
<div id="list"></div>

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/08/30 18:40:51
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント100pt

http://developer.yahoo.co.jp/webapi/auctions/auction/v2/search.html
↑を見ましたが、まず、パラメータを間違ってます。
JSON で取得したいのであれば、output=xml ではなく、output=json です。
JSONP の場合には callback パラメータも必要です。
jQuery.getJSON で使う場合には、callback=? と、コールバック関数名に半角のクエスチョンマークを指定します。

後、JSON 形式のデータでは find は使えないでしょう、きっと。
こんな感じになるはずです。

var yahoo = 
        "load.php?request=http://auctions.yahooapis.jp/AuctionWebService/V2/search?" +
        "appid=○○○&output=json&callback=?" +
        "&order=a&sort=cbids&query=";

$(function() {
    var key = "サッカー" //←実際はUTFにエンコードされています
    var url = yahoo + key;
    $.getJSON(
        url,
        function(data) {
            var item = data.ResultSet.Result.Item;
            for (i in item) {
                $("#list").append("<div>" + item[i].Title + "</div>");
            }

        });
});

URL の部分は、肝心なところが見切れちゃうので改行を入れましたが、一行に書いて大丈夫です。

id:finnapple

ご回答ありがとうございます。
ご教授頂いた内容でうまくいきました!

2013/08/30 18:40:39

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません