見出し画像

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>

以下それぞれの解説になります。

エラーメッセージ

エラーメッセージ
<!-- エラーメッセージ -->
<?php if (isset($errorMessage)): ?>
  <p class="error"><?= $errorMessage ?></p>
<?php endif; ?>

URLから商品IDを取得できないときなどに表示するエラーメッセージとなります。

動画タイトル・商品画像

動画タイトル・商品画像
<?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保存では使わないですが、分かりやすいように表示させてます。

タイトルはリンクになってまして、クリックすると別タブで商品ページに飛ぶことができます。

ジャンル・タイトル・動画説明

ジャンル・タイトル・動画説明
<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で回して表示させましょう!

サンプル画像グループ

サンプル画像グループ
<!-- サンプル画像グループ -->
<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を出力しているのでチェックしたら判断できるって感じですね。

動画・画像付きアフィリエイトリンク

動画・画像付きアフィリエイトリンク
<!-- 動画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に保存する方法を解説したいと思います!

この記事が参考になりましたら幸いです☘️

それでは良いアダアフィライフを!

いいなと思ったら応援しよう!