[WordPress] バリューコマースのAPIを叩いてみる

[WordPress] バリューコマースのAPIを叩いてみる


開発

アフィリエイトAPSでありますところのバリューコマースがAPIを公開しているということで、試しにWordPressで叩いてみることに。

バリューコマース アフィリエイトAPIのご紹介 | ASPのバリューコマース アフィリエイト
参考
バリューコマース アフィリエイトAPIのご紹介 | ASPのバリューコマース アフィリエイト

バリューコマース アフィリエイトが提供するAPIをご紹介します。リファレンスやガイド等をダウンロードいただけます。

バリューコマース アフィリエイト

提供はRSSかJSON/JOSNP。
サンプルコードがダウンロード出来るので、落として見たのですが・・・

2014-05-25_20h34_31

わかんね。

ということで、今回必要な機能のみに限定して商品情報を受け取ってみます。

やりたいこと:
記事のタグキーワードに合った商品情報(タイトル、リンク、サムネイル、詳細、販売店名)を取得する。

最初XMLでやってみたらサムネイルが取り出せなかったので、JSONで受け取って配列に直しています。

functions.phpに以下の通り

function get_VC($keyword){
  $baseurl = 'http://webservice.valuecommerce.ne.jp/productdb/search?token=';
  $token = '****(トークン)*****';
  $keyword = '&keyword='.urlencode($keyword);

  $url = $baseurl.$token.$keyword.'&format=JSON';

  $ch = curl_init();
  curl_setopt ($ch, CURLOPT_URL, $url);
  curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
  curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
  $contents = curl_exec($ch);
  if (curl_errno($ch)) {
    echo curl_error($ch);
    echo "\n<br />";
    $contents = '';
  } else {
    curl_close($ch);
  }

  if (!is_string($contents) || !strlen($contents)) {
    echo "Failed to get contents.";
    $contents = '';
  }

  $items = json_decode($contents, TRUE);

  foreach($items['items'] as $item){
    $title = $item['title'];
    $image = $item['imageLarge']['url'];
    $desc = $item['description'];
    $desc = mb_strimwidth( $desc, 0, 40, "...", "UTF-8" );
    $link = $item['link'];
    $shop = $item['merchantName'];
    $result .= '<a data-type="link" href="'.$link.'" alt="'.$title.'">'.$image.'</a><a data-type="link" href="'.$link.'" alt="'.$title.'">'.$title.'</a>'.$desc.'<a data-type="link" href="'.$link.'" alt="'.$shop.'">'.$shop.'で購入する</a>';
  }
  return $result;
}

とでもすれば大丈夫。
descriptionはそのままだと長いので、半角40文字程度でカットするようにしています。
デフォルトでは20件取得のようなので、その辺はパラメータを加えてやれば宜しかろうと。

file_get_contents works on Local but not on server
参考
file_get_contents works on Local but not on server

Possible Duplicate: file_get_contents() error Working on a script that connects to Instagram API to get photos from a certain tag. It works just fine on Local but on the server i get errors.

Stack Overflow

今日はここまで
[WordPress] バリューコマースのAPIを叩いてみる

[WordPress] バリューコマースのAPIを叩いてみる


開発

アフィリエイトAPSでありますところのバリューコマースがAPIを公開しているということで、試しにWordPressで叩いてみることに。 http://devcenter.valuecommerce.ne.jp/ 提供はR…


関連する記事



こちらはいかが?


[WordPress] パーマリンクを自動翻訳してくれるプラグイン
[WordPress] パーマリンクを自動翻訳してくれるプラグイン

パーマリンクを英語にした方が、SEO的に良いよ、という事です。 であれば翻訳API使って、自動翻訳してくれるようにすれば良くないかい?と思い、調べてみたらGoogle翻訳APIを使って同様なことを実装しているという記事。…

WordPressのギャラリーデフォルト値を変更する方法
WordPressのギャラリーデフォルト値を変更する方法

WordPressのギャラリー設定のデフォルト値は、 のように、 リンク先:「添付ファイルのページ」 カラム:「3」 サイズ:「サムネイル」 のようになっています。 このデフォルト値を リンク先:「メディアファイル」 カ…

2 件のコメント

  • neko

    初めまして。
    バリューコマースのAPIを使ってみたくて本やネットで調べている初心者です。
    Wordpressのfunctions.phpにサンプルを貼り付け、トークンを入力しました。

    その後、どうすれば表示できるのか分からなくてコメントさせてもらいました。
    「タグキーワードにあった商品情報の取得」とあったので、WordPressの投稿編集のタグに「取得してほしい商品」を追加してみましたが、表示されませんでした。
    カスタムフィールドなのかな?とも考えいろいろと試してみたのですが、わからずじまいです。

    電子書籍の(タイトル、リンク、サムネイル、詳細、販売店名)を取得したいのですが
    勉強不足な質問ですいません。

    教えて頂けるとありがたいです。
    宜しくお願い致します。

    1. 物草灸太郎

      get_VC($keyword)の$keywordは変数ですので、例えばsingle.phpやcontent.phpのテンプレート中に表示したい箇所で

      get_VC(‘wordpress’);

      と記述してみて下さい。これで表示されるのであれば、コード自体は今も使えると思いますので、投稿タグ名に対して使用するならば、

      $posttags = get_the_tags();
      if ($posttags) {
      foreach($posttags as $tag) {
      get_VC($tag->name);
      }
      }
      で行けるかな、と思います。

コメントを残す