スナックelve 本店

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

amazonアソシエイトBANされたので泣きながらバリューコマースを弄る

<追記>

adタグは広告表示数をカウントするものです。APIの結果として返ってきたvc:pvImg値をそのまま adタグとして利用してください。

商品APIリファレンス(アフィリエイトサイト向け) · バリューコマース アフィリエイト:技術資料

これやらんと駄目らしい。注意
</追記>

アソシエイトBANされた話はこちら。
snack.elve.club

というわけでちょっと真面目にアフェリエイトのリンク整備したほうがいいんじゃねーの? と。あちこちリンク死んでるしそもそも使い方よくわからんままだw
ヤフーの昔の商品の個別リンク作成してるようなのはもうどうしようもない感じかなぁ。

あと、カエレバが便利だった。

kaereba.com

こういうの作れる人すごいよねぇ。私どう頑張っても無理すわぁ・・・。というかこんなに便利なもの提供されてるけど使えてる自信がないwwww 大丈夫だろうか。
あと、バリューコマース経由でのamazon行けるのかしら? チャレンジw

さて、そんなわけで(?)、急にアレしたくなったの・・・api弄り・・・。

バリューコマースWebサービス対応プログラム*1ってのにRenta!が対応してるのでこれで遊んでみましょう。
最終的には今セールの漫画をツイートするボットとか作れたらいいなぁ。

イメージ

まず、なんとなくイメージとしては、文字列入れる箱と送信ボタンが有って、漫画のタイトル入れて送信ボタン押すとアフィリンクのタグが表示されて、それをコピペすればいい、みたいなの作りたい、と。

ベース集め

ググろう。全然わかんねーからな!!
バリューコマース アフィリエイト API」っと
バリューコマース アフィリエイトAPIのご紹介 | ASPのバリューコマース アフィリエイト
この辺?
商品APIリファレンス(アフィリエイトサイト向け) · バリューコマース アフィリエイト:技術資料
おーおーそれっぽいそれぽい!!

ありがたや。WordPressのコードはそのままは使えないので注意。
バリューコマースAPI プログラミング解説
【バリューコマース】APIで商品データを取得・出力する例|WordPress・PHP

文字コードUTF-8にして、URLエンコードする必要があります。

商品APIリファレンス(アフィリエイトサイト向け) · バリューコマース アフィリエイト:技術資料

でたな、文字コード。そして今回もハマったのであります(´;ω;`)

んでー、なんか文字入れてボタン押してそれもらうーって動きの基本がどっかに・・・。
PHP【フォーム】入力値の受け取り方 - プログラマカレッジ
これだー!!

試行錯誤中

しばしお待ち下さい





ソース

HTML

こっちでしっかりUTF-8にしてしておかんと、後で何をどう頑張ってもUTF-8にならん。たぶん。
index.html

<!doctype html>
<html>
<head>
	<html lang="ja">
	<meta charset="UTF-8">
</head>
<body>

  <form action="test.php" method="post">
    <input type="text" name="dat" value="">
    <input type="submit">
  </form>

</body>
</html>

php

test.php ↑のindex.htmlと同じフォルダに入れる

<?php
//わからんがUTF-8だと言い聞かせる
header("Content-type: text/html; charset=UTF-8");
mb_language("Japanese");
mb_internal_encoding("UTF-8");


$value_token = 'トークンはバリューコマースの画面で確認してね'; // トークンを指定
//htmlから飛んでくる文字列
$keyword = $_POST["dat"]; // 検索ワードを指定
$keyword = urlencode($keyword);// URLエンコード

$valu_shop = '0za6u'; // 検索するサイトを指定 Rentaのコード
$hits = '3'; // 取得する件数を指定 とりあえずそのまま

// 「商品API」のリクエストURL
$url = "http://webservice.valuecommerce.ne.jp/productdb/search?token={$value_token}&keyword={$keyword}&category=&product_id=&sub_store=&merchant=&ec_code={$valu_shop}&price_min=&price_max=&size=&color=&stock=&gender=&vcptn=&page=1&results_per_page=3&maxhits={$hits}&sort_by=score&sort_order=desc&adult=n&rank=&rank_from=&rank_to=&format=JSON&callback=";

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

if( $obj->status == "OK" ){
	// 取得した商品データの配列を変数$itemsに格納
	$items = $obj->items;
	foreach( $items as $item ){
		$title = $item->title; // 商品タイトルを取得
		$link = $item->link; // 商品へのリンクを取得
		$ad_tag = $item->pvImg; // 広告表示数カウント用のadタグを取得
		$image = $item->imageLarge->url; // ラージサイズの商品画像を取得
		$price = $item->price;//お値段

    //後でどうにかしたい情報
		$sale_price = $item->sale_price;
		$sale_start_date = $item->sale_start_date;
		$sale_end_date = $item->sale_end_date;
		$product_update_day = $item->product_update_day;
		$description = $item->description;

		// 商品情報を出力する際のHTML
$link="http:" . urldecode($link);
$output ="";
$output = '<div class="flex" style="display: flex"><div class="image" style="margin: 0; padding: 0; overflow: hidden; position: relative;"><a href="' . $link . '" target="_blank"><img src="' . $image . '" alt="' . $title .'"></a></div><div class="right" style="margin: 0 0 0 20px; padding: 0;"><a href="' . $link . '" target="_blank"><p class="title" style="margin: 0; padding: 0; font-weight: bold; font-size: x-large;">' . $title . '</p><p class="text" style=" margin: 10px 0 0; padding: 0;">' . $description . '(' . $price . '円)</p></a>' . $ad_tag  . '</div></div>';

//画面にHTMLコード出力
echo '<p>' . htmlspecialchars($output, ENT_QUOTES|ENT_XML1) . '</p>' . "\n";

	}
}else{
	
	echo '<p>商品はありません。</p></br><p>' . $obj->status . '</p>';
}
?>

サラッと書いたが・・・めちゃくちゃ苦労したよぅ(´;ω;`)

参考(ありがとうございます~)

DMMアフィリエイトは儲からないからやめとけ!ただしDMMの商品は稼げる! | ちょろアフィ
PHPのHTMLエスケープ – yohgaki's blog
【バリューコマース】APIで商品データを取得・出力する例|WordPress・PHP
PHPで配列の要素数を取得するcount関数の使い方! | コードライク
font-size - CSS: カスケーディングスタイルシート | MDN
HTMLページの文字コードを設定する | GRAYCODE HTML&CSS
PHPでのエスケープ処理 | inglow:東京・大阪・名古屋のマーケティングオートメーション・Webプロモーション
(PHP)フォームからPOSTで受け取ったデータが文字化けする : old_3流プログラマのメモ書き
PHPにてテキストファイルの文字コードをutf-8に統一する方法| eラーニングシステムのlearningBOX
オブジェクトの要素数を数える
PHP【フォーム】入力値の受け取り方 - プログラマカレッジ
商品APIリファレンス(アフィリエイトサイト向け) · バリューコマース アフィリエイト:技術資料
トークン取得APIリファレンス(広告主向け) · バリューコマース アフィリエイト:技術資料
URLエンコードについておさらいしてみた - Qiita
preタグを使ってソースコードを埋め込む方法を解説! | Qumeruマガジン
バリューコマースAPI プログラミング解説
バリューコマースAPI プログラミング解説
アフィリエイトAPIのまとめ
URLエンコード・デコード|日本語URLをサクッと変換 | すぐに使える便利なWEBツール | Tech-Unlimited
特殊文字一覧:HTMLで使える文字コードの一覧表 - ウェブランサー
ソースコードをサイト内で表示する方法 - メタルドラマーのIT備忘録(IT memorandum by a metal drummer)
関数リファレンス/esc url - WordPress Codex 日本語版
【みんなの知識 ちょっと便利帳】URLエンコード/デコードツール = UTF-8
バリューコマースAPIの利用方法:Geekなぺーじ
バリューコマースAPI利用準備:Geekなぺーじ
HTML/CSS 画像の横に文字を並べる&パターン2種 | なんとなくWEBで食べていく
PHP: foreach - Manual
PHP: htmlspecialchars_decode - Manual
PHP: mb_detect_encoding - Manual
PHP: urldecode - Manual
PHP: urlencode - Manual
PHP: 比較演算子 - Manual
【PHP入門】URLエンコードする方法(urlencode) | 侍エンジニアブログ
【HTML入門】styleタグやstyle属性を使って直接CSSを書き込もう! | 侍エンジニアブログ
バリューコマース アフィリエイトAPIのご紹介 | ASPのバリューコマース アフィリエイト

*1:サイトには広告主の商品情報をAPIを通じて利用できるサービスです。ご利用にはPHPの知識と動作環境が必要です。と、書かれている