スナックelve 本店

バツイチ40代女の日記です

DMM.com のAPI 叩くよ

とりあえず現状のソース

<?php
//UTF-8のおまじない
header("Content-type: text/html; charset=UTF-8");
mb_language("Japanese");
mb_internal_encoding("UTF-8");
require_once 'ref.php';
?>
<!doctype html>
<html>
	<head>
		<html lang="ja">
		<meta charset="UTF-8">
	</head>
	<body>

		<form action="" method="post">
<?php
	//受信済みのデータが有れば入力
    if(isset($_POST["api_id"])) {
echo '<p><label for="api_id">api_id</label><input type="text" id="api_id" name="api_id" value="' . $_POST["api_id"] . '"></p>';
echo '<p><label for="affiliate_id">affiliate_id</label><input type="text" id="affiliate_id" name="affiliate_id" value="' . $_POST["affiliate_id"] . '"></p>';
echo '<select name="site" size="1">';
echo '<option value="DMM.com" selected>一般</option>';
echo '<option value="FANZA">アダルト</option>';
echo '</select>';
echo '<p><label for="service">service</label><input type="text" id="service" name="service" value="' . $_POST["service"] . '"></p>';
echo '<p><label for="floor">floor</label><input type="text" id="floor" name="floor" value="' . $_POST["floor"] . '"></p>';
echo '<p><label for="hits">hits</label><input type="text" id="hits" name="hits" value="' . $_POST["hits"] . '"></p>';
echo '<p><label for="offset">offset</label><input type="text" id="offset" name="offset" value="' . $_POST["offset"] . '"></p>';
echo '<select name="sort" size="1">';
echo '<option value="rank" selected>人気</option>';
echo '<option value="price">価格が高い順</option>';
echo '<option value="-price">価格が安い順</option>';
echo '<option value="date">新着</option>';
echo '<option value="review">評価</option>';
echo '<option value="match">マッチング順</option>';
echo '</select>';
echo '<p><label for="keyword">keyword</label><input type="text" id="keyword" name="keyword" value="' . $_POST["keyword"] . '"></p>';
echo '<p><label for="cid">cid</label><input type="text" id="cid" name="cid" value="' . $_POST["cid"] . '"></p>';
echo '<select name="article" size="1">';
echo '<option value="" selected>なし</option>';
echo '<option value="actress">女優</option>';
echo '<option value="author">作者</option>';
echo '<option value="genre">ジャンル</option>';
echo '<option value="series">シリーズ</option>';
echo '<option value="maker">メーカー</option>';
echo '</select>';
echo '<p><label for="article_id">article_id</label><input type="text" id="article_id" name="article_id" value="' . $_POST["article_id"] . '"></p>';
echo '<p><label for="gte_date">gte_date</label><input type="text" id="gte_date" name="gte_date" value="' . $_POST["gte_date"] . '"></p>';
echo '<p><label for="lte_date">lte_date</label><input type="text" id="lte_date" name="lte_date" value="' . $_POST["lte_date"] . '"></p>';
echo '<select name="mono_stock" size="1">';
echo '<option value="">初期値</option>';
echo '<option value="stock">在庫あり</option>';
echo '<option value="reserve">予約受付中</option>';
echo '<option value="mono">DMM通販のみ</option>';
echo '<option value="dmp">マーケットプレイスのみ</option>';
echo '</select>';
	}else{
echo '<p><label for="api_id">api_id</label><input type="text" id="api_id" name="api_id" value="API IDを入れる"></p>';
echo '<p><label for="affiliate_id">affiliate_id</label><input type="text" id="affiliate_id" name="affiliate_id" value="アフィリエイトID(なんか990とかつくやつ)"></p>';
echo '<select name="site" size="1">';
echo '<option value="DMM.com" selected>一般</option>';
echo '<option value="FANZA">アダルト</option>';
echo '</select>';
echo '<p><label for="service">service</label><input type="text" id="service" name="service" value="ebook"></p>';
echo '<p><label for="floor">floor</label><input type="text" id="floor" name="floor" value="comic"></p>';
echo '<p><label for="hits">hits</label><input type="text" id="hits" name="hits" value=""></p>';
echo '<p><label for="offset">offset</label><input type="text" id="offset" name="offset" value=""></p>';
echo '<select name="sort" size="1">';
echo '<option value="rank" selected>人気</option>';
echo '<option value="price">価格が高い順</option>';
echo '<option value="-price">価格が安い順</option>';
echo '<option value="date">新着</option>';
echo '<option value="review">評価</option>';
echo '<option value="match">マッチング順</option>';
echo '</select>';
echo '<p><label for="keyword">keyword</label><input type="text" id="keyword" name="keyword" value=""></p>';
echo '<p><label for="cid">cid</label><input type="text" id="cid" name="cid" value=""></p>';
echo '<select name="article" size="1">';
echo '<option value="" selected>なし</option>';
echo '<option value="actress">女優</option>';
echo '<option value="author">作者</option>';
echo '<option value="genre">ジャンル</option>';
echo '<option value="series">シリーズ</option>';
echo '<option value="maker">メーカー</option>';
echo '</select>';
echo '<p><label for="article_id">article_id</label><input type="text" id="article_id" name="article_id" value=""></p>';
echo '<p><label for="gte_date">gte_date</label><input type="text" id="gte_date" name="gte_date" placeholder="yyyy-mm-ddT00:00:00"></p>';
echo '<p><label for="lte_date">lte_date</label><input type="text" id="lte_date" name="lte_date" placeholder="yyyy-mm-ddT00:00:00"></p>';
echo '<select name="mono_stock" size="1">';
echo '<option value="" selected>初期値</option>';
echo '<option value="stock">在庫あり</option>';
echo '<option value="reserve">予約受付中</option>';
echo '<option value="mono">DMM通販のみ</option>';
echo '<option value="dmp">マーケットプレイスのみ</option>';
echo '</select>';
	}
?>
			<input type="submit">
		</form>
<?php
if(isset($_POST["api_id"])) {
	$api_id = $_POST["api_id"];
	$affiliate_id = $_POST["affiliate_id"];
	$site = $_POST["site"];
	$service = $_POST["service"];
	$floor = $_POST["floor"];
	$hits = $_POST["hits"];
	$offset = $_POST["offset"];
	$sort = $_POST["sort"];
	$keyword = urlencode($_POST["keyword"]);
	$cid = $_POST["cid"];
	$article = $_POST["article"];
	$article_id = $_POST["article_id"];
	$gte_date = $_POST["gte_date"];
	$lte_date = $_POST["lte_date"];
	$mono_stock = $_POST["mono_stock"];
	$para="";
	if($api_id != ""){$para = $para . "&" . api_id . "={$api_id}";}
	if($affiliate_id != ""){$para = $para . "&" . affiliate_id . "={$affiliate_id}";}
	if($site != ""){$para = $para . "&" . site . "={$site}";}
	if($service != ""){$para = $para . "&" . service . "={$service}";}
	if($floor != ""){$para = $para . "&" . floor . "={$floor}";}
	if($hits != ""){$para = $para . "&" . hits . "={$hits}";}
	if($offset != ""){$para = $para . "&" . offset . "={$offset}";}
	if($sort != ""){$para = $para . "&" . sort . "={$sort}";}
	if($keyword != ""){$para = $para . "&" . keyword . "={$keyword}";}
	if($cid != ""){$para = $para . "&" . cid . "={$cid}";}
	if($article != ""){$para = $para . "&" . article . "={$article}";}
	if($article_id != ""){$para = $para . "&" . article_id . "={$article_id}";}
	if($gte_date != ""){$para = $para . "&" . gte_date . "={$gte_date}";}
	if($lte_date != ""){$para = $para . "&" . lte_date . "={$lte_date}";}
	if($mono_stock != ""){$para = $para . "&" . mono_stock . "={$mono_stock}";}
	$para=substr($para,1);
	$url = "https://api.dmm.com/affiliate/v3/ItemList?" . $para;

	// JSONデータを取得・エンコードしオブジェクトに変換
	$json = file_get_contents($url);
	$obj = json_decode( $json );

//	echo "<pre>";
//	var_dump ($obj);
//	echo "</pre>";

	$items=$obj->result->items;
        //アイテム数
	echo count($items);

	$count=1;
	foreach($items as $item){
                //作者情報まとめる
		$authors=$item->iteminfo->author;
		$sakusya="";
		foreach($authors as $author){
			if($sakusya==""){
				$sakusya=$author->name . "先生";
			}else{
				$sakusya=$sakusya . "、" . $author->name . "先生";
			}
		}
                //URL情報(立ち読み対応が有ればそちら)
		$url="";
		if($item->tachiyomi->affiliateURL){
			$url=$item->tachiyomi->affiliateURL;
		}else{
			$url=$item->affiliateURL;
		}
                //出力
		echo "<p>第{$count}位:{$sakusya}の『{$item->title}{$item->number}{$item->prices->price}円<br/>{$url}</p>";
		$count++;
	}
}
?>

出力


第5位:川上泰樹先生、伏瀬先生、みっつばー先生の『転生したらスライムだった件』21 今 660円
https://al.dmm.com/?lurl=https%3A%2F%2Fbook.dmm.com%2Ftachiyomi%2F%3Fcid%3DFRNfXRNVFW1RAQxaCgZWTgoBRQYFDlcBThFfCUJYU1kCCERYCmkGUFcKWhRHVwVfCBxZW1kEVQ__%26lin%3D1%26sd%3D0%2F&af_id=elve-990&ch=api

コピペしてツイートするとこんな感じ