Liner Note

情報(ユーザー中心デザイン・ユーザビリティ)と技術(ウェブプログラミング・ウェブサービス)についてのメモ書き

要約:Amazon Linakgeプラグインの購入者情報の取得を簡単にできるようにしました

昔、WordPress用Amazonアソシエイトプラグイン
ニコニコ市場のような購入数情報をつけてみましたが、Perlスクリプトと併用しなければならなこともあり、一般ユーザの使用は難しいものでした。

今回、akiyan.comさんのPHPでの実装を参考にレポートをゲットするスクリプトを書いたので1 一般ユーザでも簡単に使えるようになりました。

ちなみに、Amazonの購入者情報を表示するまでには以下のようなプロセスを踏んでいます。

  1. シェルスクリプト(report/report.sh)をcronで定期的に実行する(以下の3つの動作を定期的に実行するためのものです)
  2. レポート情報取得スクリプト(report/report.php)を動かして、Amazon.co.jpからXML形式のレポートを取得する
  3. レポートファイルを移動する(ファイルがサーバのルート近くに生成されることがあるため)
  4. ゲットしたXML形式のレポートを基にデータベースを作成または更新する(report/update.php)

なお、このためには、設定ファイル(report/conf.inc.php)にAmazonアソシエイトのログインで使う情報を書いておく必要があります(この情報はレポートの取得のみに使われます)

以下のように、情報を記入してください。

PHPソースコード
/*
 Amazon Linkage レポート取得用設定
 (Amazon.co.jp アソシエイトのアカウント情報を入力してください)
*/
 
// アカウントのEメールアドレス
$this->email    = "amazon@example.com";
 
// アカウントのパスワード
$this->password = "password";
 
// 取得するファイルの形式
//(html,csv, xmlのいずれか。購入者情報を表示する場合はxmlにしておいてください)
$this->type     = "xml";

なお、Amazon Linkageプラグインのダウンロードはこちらからどうぞ。

導入についての補足情報を書きましたので、参考にしてください

レポート取得スクリプトのソース

PHPソースコード
<?php
require_once 'HTTP/Client.php';
 
$report = new report;
$report->getReport();
$report->saveReport();
 
class report{
  
  // コンストラクタ(設定の読込)
  function __construct(){
    
    include "conf.inc.php";
    
  }
  
  // レポートをゲット
  function getReport(){
    
    switch($this->type){
      case "xml" : $request = "submit.download_XML"; break;
      case "csv" : $request = "submit.download_CSV"; break;
      case "html": $request = ""; break;
    }
    
    $yesterday = time() - ( 60 * 60 * 24 );
    $host = "https://affiliate.amazon.co.jp/gp";
    
    $loginParams = array(
      'ie' => "UTF-8",
      'protocol' => 'https',
      '__mk_ja_JP' => urlencode("カタカナ"),
      'path' => '/gp/associates/login/login.html',
      'useRedirectOnSuccess' => '0',
      'query' => '',
      'mode' => '1',
      'redirectProtocol' => '',
      'pageAction' => '/gp/associates/login/login.html',
      'disableCorpSignUp' => '',
      'email' => $this->email,
      'password' => $this->password,
      'action' => 'sign-in',
    );
    
    $reportParams = array(
      '__mk_ja_JP' => urlencode("カタカナ"),
      'tag' => '',
      'reportType' => 'ordersReport',
      'preSelectedPeriod' => 'yesterday',
      'periodType' => 'exact',
      'startYear' => '2003',
      'startMonth' => '0',
      'startDay' => '1',
      'endYear' => date('Y', $yesterday),
      'endMonth' => (string)(date('m', $yesterday) - 1),
      'endDay' => date('d', $yesterday),
      $request => '',
    );
    
    $loginQueries  = http_build_query($loginParams);
    $reportQueries = http_build_query($reportParams);
    
    $client = new HTTP_Client();
    
    // ログイン画面
    $client->get("{$host}/associates/login/login.html");
    $response = $client->currentResponse();
    // ログイン
    $client->post("{$host}/flex/sign-in/select.html", $loginQueries, true);
    $response = $client->currentResponse();
    // レポート
    $client->post("{$host}/associates/network/reports/report.html", $reportQueries, true);
    $response = $client->currentResponse();
    
    if (!empty($response['body'])){
      
      $this->report = $response['body'];
      return true;
      
    } else{
      
      return false;
      
    }
    
  }
  
  // ゲットしたレポートを出力
  function saveReport(){
    
    // レポートを捕捉
    ob_start();
    print_r($this->report);
    $buffer = ob_get_contents();
    ob_end_clean();
    
    // 出力
    $fn = "report.{$this->type}";
    $fp = fopen($fn, "w");
    fputs($fp, $buffer);
    fclose($fp);
    
    # chmod("./{$fn}", 0666);
    
    return true;
    
  }
  
}
?>

感謝の意味も込めてリンク。

4774133418

  1. やり方としては同じですが、そのままではパクリなので書き方を変えてます[戻る]

Popularity: 2% [?]

キーワード:

似たもの記事

読者の皆さんの反応サイト内コメントの更新情報(RSSフィード)

読者のコメント

2

ブックマークコメント

0

他サイトの関連記事

0

読者のコメント

  1. お名前

    レビュー

    投稿日時
    2008年03月17日
    22時ごろ
    Comment No
    #1

    え~と、勉強不足なのは承知で、申し訳ないですが、akiyan.comさんのソースだけではないですよね?
    Amazon Linkageプラグインとの併用、という感じでしょうか?

    Amazon LinkageプラグインにもReadme.txtをと書いてあるのですが、それも見当たりませんし、
    どのファイルをどこにUPして利用すれば良いのか・・・混乱してしまいました。

はてなブックマークでつけられたコメント

他サイトの関連記事

トラックバックはまだ寄せられていません


トラックバックとは
この記事に言及したサイトをこちらに掲載する仕組みをトラックバックと言います。ここでは、このサイトに頂いたトラックバックを一覧表示しています。
トラックバックしてくださる方へ
この記事への言及がない記事など、トラックバック受信方針に沿っていないものは、読者にお見せしても仕方ないこともあり削除させていただいることをご了承ください。
トラックバックを受け取るためのURI

コメント書き込みフォーム

  • メールアドレスはウェブ上で公開したり、連絡以外で使うことはありません
  • コメントを公開したくないが、作者に連絡を取りたい場合は メールで連絡してください
  • 本文中にHTMLコードは使用できません(URLはそのままお書きください)