DMM API PHP JSON
なんかDMMのAPI ver3.0は何もしなくても動くだろうと思っていたら、まったく動かなくなっていた。サーバも変更になったようでアクセスすらできない・・・。
仕方ないので、DMM APIのJSONをPHPで受け取りデコードすることにした。
define(DMM_API_ID, 'XXXXXXXXXXXXXXXXX');
define(DMM_AFI_ID, 'XXXX-990');
define(DMM_REQUEST_DOMAIN, 'api.dmm.com');
define(DMM_REQUEST_PATH, '/affiliate/v3/ItemList');
$request_param = array(
'api_id' => DMM_API_ID,
'affiliate_id' => DMM_AFI_ID,
'operation' => 'ItemList',
'version' => '1.00',
'site' => 'DMM.R18',
'service' => 'mono',
'floor' => 'dvd',
'output' => 'json',
);
$request_param = array_map ('rawurlencode', $request_param);
ksort($request_param);
$request_queries = array();
foreach ($request_param as $k => $v) $request_queries[] = "{$k}={$v}";
$request_query = implode('&', $request_queries);
$aws_signed_url = 'https://'. DMM_REQUEST_DOMAIN. DMM_REQUEST_PATH. "?{$request_query}";
$url = $aws_signed_url;
$array = json_decode(file_get_contents($url),true);
$mycar = $array['result']['items'];
foreach ( $mycar as $key => $value ){
if($i++) { break; }
$mytitle = $value['title'];
if($mytitle) { $i++; }
$mytitle = mb_strimwidth($mytitle,0,80,"...",utf8);
$str .= <<<_EOT_
XXXXXXXXXXXXXXXX
_EOT_;
}
if($str) {
file_put_contents('XXXXXXXXXXXXX' ,$str);
}