![見出し画像](https://assets.st-note.com/production/uploads/images/159278517/rectangle_large_type_2_47e74ded3d819b6de957c4244a9d0477.png?width=1200)
DMM APIの活用法② URLから商品情報を表示してみる | アダルトアフィリエイト
前回はDMM APIを利用してURLから商品情報を取得しました。
今回は取得したデータを表示させてみましょう。
↓前回の記事
注意
noteの投稿に失敗しますので、動画HTMLの部分のドメインをdmmからexample.co.jpに変更してます
取得した商品データの表示
商品データを取得したコードを再掲します
// URLで検索した時の処理
if (isset($_POST['url'])) {
$url = $_POST['url'];
$contentId = getContentIdFromUrl($url);
if ($contentId) {
$apiUrl = getApiUrl($contentId);
$dataList = getDetailsDataList($apiUrl);
} else {
$errorMessage = "URLから商品IDを取得できませんでした。";
}
}
ここで$dataListに表示させるデータが入っています。
ではindex.phpに検索フォームの直下にデータを表示させるコードを書きましょう!
index.php
<main class="main">
// ...
<div class="content">
<!-- エラーメッセージ -->
<?php if (isset($errorMessage)): ?>
<p class="error"><?= $errorMessage ?></p>
<?php endif; ?>
<?php if ($dataList): ?>
<!-- 動画タイトル -->
<h1 class="title"><a href="<?=$dataList['url'] ?>" target="_blank"><?=$dataList['title'] ?></a></h1>
<!-- 商品画像 -->
<div class="image-large"><img src="<?=$dataList['image_large'] ?>" alt=""></div>
<form action="" method="post">
<input type="hidden" name="url" value="<?=$url ?>">
<div class="edit">
<!-- ジャンル -->
<div class="edit-item">
<div class="edit-tag">
<?php foreach($dataList['genre_list'] as $genre_name): ?>
<label><input type="checkbox" name="genres[]" value="<?=$genre_name ?>"><?=$genre_name ?></label>
<?php endforeach; ?>
</div>
</div>
<!-- タイトル -->
<div class="edit-item">
<div class="edit-label"><label for="">タイトル</label></div>
<div class="edit-text"><input type="text" name="title" value="<?=$dataList['title'] ?>"></div>
</div>
<!-- 動画説明 -->
<div class="edit-item">
<div class="edit-label"><label for="">動画説明</label></div>
<textarea name="description" id=""><?=$dataList['description'] ?></textarea>
</div>
<!-- サンプル画像グループ -->
<div class="edit-img-gallery">
<?php foreach($dataList['sampleImage_list'] as $image): ?>
<div class="edit-img-item">
<div class="edit-img-label">
<label><input type="checkbox" name="image" value="<?=$image ?>">サムネイル</label>
<label><input type="checkbox" name="image_group[]" value="<?=$image ?>">画像グループ</label>
<label>
順番:
<select name="image_order[<?=$image?>]">
<option value="0">選択しない</option>
<option value="1">1番目</option>
<option value="2">2番目</option>
<option value="3">3番目</option>
</select>
</label>
</div>
<div class="edit-img">
<img src="<?=$image ?>" alt="">
</div>
</div>
<?php endforeach; ?>
</div>
<!-- 動画HTML -->
<div class="edit-item">
<div class="edit-label"><label for="">動画</label></div>
<textarea name="movie" id=""><div style="width:100%; padding-top: 75%; position:relative;"><iframe width="100%" height="100%" max-width="1280px" style="position: absolute; top: 0; left: 0;" src="https://example.co.jp/litevideo/-/part/=/cid=<?=$dataList['content_id'] ?>/size=1280_720/" scrolling="no" frameborder="0" allowfullscreen></iframe></div></textarea>
</div>
<!-- 動画リンク -->
<div class="edit-item">
<div class="edit-label"><label for="">動画リンク</label></div>
<textarea name="movie_link" id=""><div style="margin:0;padding:5px;font-size:14px;word-break: break-all;"><a href="<?=$dataList['affiliate_url'] ?>" rel="sponsored" target="_blank"><img src="<?=$dataList['image_large'] ?>" alt="<?=$dataList['title'] ?>"/><span style="display:block;margin:5px 0 0 0;padding:0;text-align:left;"><?=$dataList['title'] ?></span></a></div></textarea>
</div>
<button type="submit" name="save_csv">CSVに保存</button>
</div>
</form>
<!-- 動画ダウンロード -->
<form action="" method="post">
<input type="hidden" name="url" value="<?=$url ?>">
<button type="submit" name="save_movie">動画をダウンロード</button>
</form>
<a href="">ホーム</a>
<?php endif; ?>
</div>
</main>
以下それぞれの解説になります。
エラーメッセージ
![](https://assets.st-note.com/img/1729872790-b20rAlNM4EV9UmTQI6SZ1Kv3.png?width=1200)
<!-- エラーメッセージ -->
<?php if (isset($errorMessage)): ?>
<p class="error"><?= $errorMessage ?></p>
<?php endif; ?>
URLから商品IDを取得できないときなどに表示するエラーメッセージとなります。
動画タイトル・商品画像
![](https://assets.st-note.com/img/1729873126-1rBzsTEkwCt8v5RLfNV0qdhW.png?width=1200)
<?php if ($dataList): ?>
<!-- 動画タイトル -->
<h1 class="title"><a href="<?=$dataList['url'] ?>" target="_blank"><?=$dataList['title'] ?></a></h1>
<!-- 商品画像 -->
<div class="image-large"><img src="<?=$dataList['image_large'] ?>" alt=""></div>
//...
<?php endif; ?>
以下、$dataListが存在した時の処理になります。
ここでの動画タイトルと商品画像はCSV保存では使わないですが、分かりやすいように表示させてます。
タイトルはリンクになってまして、クリックすると別タブで商品ページに飛ぶことができます。
ジャンル・タイトル・動画説明
![](https://assets.st-note.com/img/1729873177-KgjODuAm43cbRpfUawSLyJdY.png?width=1200)
<form action="" method="post">
<input type="hidden" name="url" value="<?=$url ?>">
<div class="edit">
<!-- ジャンル -->
<div class="edit-item">
<div class="edit-tag">
<?php foreach($dataList['genre_list'] as $genre_name): ?>
<label><input type="checkbox" name="genres[]" value="<?=$genre_name ?>"><?=$genre_name ?></label>
<?php endforeach; ?>
</div>
</div>
<!-- タイトル -->
<div class="edit-item">
<div class="edit-label"><label for="">タイトル</label></div>
<div class="edit-text"><input type="text" name="title" value="<?=$dataList['title'] ?>"></div>
</div>
<!-- 動画説明 -->
<div class="edit-item">
<div class="edit-label"><label for="">動画説明</label></div>
<textarea name="description" id=""><?=$dataList['description'] ?></textarea>
</div>
//...
</div>
</form>
ここでタイトルなど編集してCSVに保存できるように、inputやtextareaに取得したデータを入れてformタグで閉じています。
ジャンルに関しては配列になっているので、foreachで回して表示させましょう!
サンプル画像グループ
![](https://assets.st-note.com/img/1729873314-Joj7VHfZBzKlLG3gQP8FuUn9.png?width=1200)
<!-- サンプル画像グループ -->
<div class="edit-img-gallery">
<?php foreach($dataList['sampleImage_list'] as $image): ?>
<div class="edit-img-item">
<div class="edit-img-label">
<label><input type="checkbox" name="image" value="<?=$image ?>">サムネイル</label>
<label><input type="checkbox" name="image_group[]" value="<?=$image ?>">画像グループ</label>
<label>
順番:
<select name="image_order[<?=$image?>]">
<option value="0">選択しない</option>
<option value="1">1番目</option>
<option value="2">2番目</option>
<option value="3">3番目</option>
</select>
</label>
</div>
<div class="edit-img">
<img src="<?=$image ?>" alt="">
</div>
</div>
<?php endforeach; ?>
</div>
サンプル画像のurlは$dataList['sampleImage_list']に配列で入っているので、こちらもforeachで表示させます。
ここでサンプル画像からサムネイルと、サイトに表示させる画像を3枚選べるようにそれぞれcheckboxとselectを使います。
選択した後の処理はCSVを保存する次回で解説したいと思います。
ここではvalueなどにurlを出力しているのでチェックしたら判断できるって感じですね。
動画・画像付きアフィリエイトリンク
![](https://assets.st-note.com/img/1729873385-dqc1sTOSvIomp2LjuekNPWYr.png?width=1200)
<!-- 動画HTML -->
<div class="edit-item">
<div class="edit-label"><label for="">動画</label></div>
<textarea name="movie" id=""><div style="width:100%; padding-top: 75%; position:relative;"><iframe width="100%" height="100%" max-width="1280px" style="position: absolute; top: 0; left: 0;" src="https://example.co.jp/litevideo/-/part/=/cid=<?=$dataList['content_id'] ?>/size=1280_720/" scrolling="no" frameborder="0" allowfullscreen></iframe></div></textarea>
</div>
<!-- 動画リンク -->
<div class="edit-item">
<div class="edit-label"><label for="">動画リンク</label></div>
<textarea name="movie_link" id=""><div style="margin:0;padding:5px;font-size:14px;word-break: break-all;"><a href="<?=$dataList['affiliate_url'] ?>" rel="sponsored" target="_blank"><img src="<?=$dataList['image_large'] ?>" alt="<?=$dataList['title'] ?>"/><span style="display:block;margin:5px 0 0 0;padding:0;text-align:left;"><?=$dataList['title'] ?></span></a></div></textarea>
</div>
最後に動画と画像付きアフィリエイトリンクになります。
ここではFANZAのアフィリエイトリンク作成や動画のHTMLソースをコピー通りにしてurlやcidのところに取得したデータを入れている感じです。
本当に機能するかは確認してみてください!
ここで動画に関してはおそらくVRに関しては取得できないかと思いますので注意してください。
適宜、除外するなどの処理を書いていただければと
(自分は面倒なので手動でテキストエリアを消してます。。)
まとめ
前回取得したデータを画面に表示させる方法を解説しました。
次回は取得したデータを元に編集したりしたデータをCSVに保存する方法を解説したいと思います!
この記事が参考になりましたら幸いです☘️
それでは良いアダアフィライフを!