DMM.comのAPIをPHPで利用する

DMM.comおよびDMM.co.jpのAPIをPHPで利用する方法です。
データはREST形式で帰ってきますので、その他多くのWebAPIと同じです。

一つ重要な点はDMM.comのAPIはEUC-JPです。
UTF-8で提供されることが多い中、EUC-JPは珍しいかもしれません。

リファレンス

リファレンスを眺めつつ、さくっと作りました。
ファイルの保存形式はUTF-8、APIのデータのやり取りはEUC-JPです。

[php]
//商品を検索するキーワードをGETで受け取っています。
//受け取ったキーワードをUTF-8からEUC-JPに変換しています。
$keyword = urlencode(mb_convert_encoding($_GET[‘keyword’], “EUC-JP”, “UTF-8”));

//リクエストパラメータにタイムスタンプが必要なので生成しておきます。
//タイムスタンプもurlencodeが必要です。
$timestamp = urlencode(date(“Y-m-d H:i:s”));

//リクエストURLを生成します。
//リクエストパラメータについてはリファレンスを参照してください。
//siteをDMM.co.jpにするとR18です。
$requrl = “http://affiliate-api.dmm.com/?api_id=あなたのAPI ID”;
$requrl.= “&affiliate_id=あなたのアフィリエイトID&operation=ItemList&version=2.00&”;
$requrl.= “timestamp=”.$timestamp.”&site=DMM.com”;
$requrl.= “&sort=rank&hits=100&keyword=”.$keyword;

//XMLを取得しUTF-8にエンコードを変換します。
$file = mb_convert_encoding(file_get_contents($requrl), “UTF-8”, “EUC-JP”);

//simplexml_load_stringはXML中のエンコードの値を参照するので
//XMLの中のエンコード表記をeuc-jpからUTF-8に置換します。
$file = ereg_replace(“encoding=\”euc-jp\””, “encoding=\”UTF-8\””, $file);
$xml = simplexml_load_string($file);

foreach($xml->result->items->item as $value){
//適当にデータを加工して出力します。
}
[/php]

スポンサーリンク
レクタングル大




フォローする

スポンサーリンク
レクタングル大




コメント

  1. 通りすがり より:

    とても参考になりました。
    ありがとうございます。