ヨメレバ」で作成されたもの。ブックマークレットをブラウザに用意しておき、Amazonで商品紹介をしたい書籍のページを開いてブックマークレットをクリック。すると一瞬でアソシエイトリンクを埋め込んだHTMLソースを生成してくれます。そんなヨメレバに何の不満も無いのですが、自分用にHTMLソースをカスタマイズしたくなり、自前でヨメレバっぽいアソシエイトリンク生成ツールを作ってみました。以下はその時のメモです。私はプログラマーではないので、ソースの公開はしません。「ブックマークレット(ブラウザのブックマークから起動する簡易なプログラム)から起動して、Amazonアソシエイトリンクを埋め込んだHTMLソースを生成するツール」の作成を目指しました。API)を介してアソシエイトリンク生成コピペできるHTMLソースを表示というものです。自分一人が使うものなのでローカルPCで動けばOK。プログラム言語はPHPを使用しました。ちなみにヨメレバはYahooAPIを通してキーワードやISBNからAmazonの紙書籍・電子書籍データ、及びその他アフィリエイトのリンクを同時に生成していますが(スゴイ)、ここではAmazonの紙書籍リンクまたは電子書籍リンクどちらかを生成するものとします。準備するものAmazonのアソシエイトID「○○○-22」のようなAmazonのアソシエイトリンクを使える必要があります。ある程度の体裁のブログやWEBサイトを作ったあとAmazonに申請すれば、アソシエイトIDの使用許可が降りるでしょう。APIを使用するためには、別途API用のアクセスキーとシークレットアクセスキーを取得する必要があります。私、これをだいぶ前に取ったので記憶があやふやなのですが...。Amazonのco.jpではなくcomでアカウントを作って取得した記憶があります。本エントリーは、PA-API4.0時点のものとなります。API)と移行するため、これからPA-APIをご利用の方は、以下のv5.0の記事をご参考ください。その際にアクセスキーとシークレットアクセスキーが必要になります。これらの取得方法を紹介します。アカウントが必要です。dotnsf.blog.jp上記の記事などをご参考いただければ(適当)。「AmazonのAPI」ってそもそもなんじゃろ?という方のために補足。簡単に書くと、情報のリクエストを送ると、それに応じて必要な情報を返してくれるのがAPIです。「この書籍の価格を教えて」とリクエストとすると、「○○○円だよ」とレスポンスをくれます。XAMPPのインストールローカルPC上でPHPプログラムが動作するように、XAMPPをインストールします。他にも方法があるかもしれませんが、私はわかりやすいのでこれで。聞けない!XAMPPをインストールする方法【超初心者向け】Webアプリケーションの開発環境「XAMPP(ザンプ)」をインストールする方法を、画像を13枚使って初心者向けに解説する記事です。インストール方法の他に、ApacheとMySQLの使い方もあわせて紹介します。techacademy.jpインストールにはこちらの記事が詳しいかと。要はパッケージをPCにインストールし、終わったらXAMPPを起動、Apacheをスタートさせれば「http://localhost/~」でパソコン内に設置したPHPファイルを実行できる、ということです。localhostの場所はXAMPPをインストールしたフォルダの「htdocs」以下になります。「~/htdocs/amazon/」に「index.php」を設置すれば、「http://localhost/amazon/index.php」でphpファイルにアクセスできます(index.phpは省略可)。プログラムの組み立て準備ができたらプログラムを組んでいきます。HTMLやCSSについては省略。AmazonのAPIを呼び出して戻り値からアソシエイトリンクを組み込んだHTMLを生成する、を目指します。商品ページからURLを取り出してPHPに渡すために、ブックマークレットを作成します。...といってもこれはヨメレバに設置してあるブックマークレット(下の方にあります)を参考にすればすぐに作れるかと。javascript内のURLを自分の作るphpファイルのURLに変更し、HTMLファイルとして保存。ブラウザで開いてURLをChromeなどのブックマークバーにドラッグ&ドロップすれば完成です。ASIN/ISBNの取り出しブックマークレットから起動するPHPファイルには、前述のようにAmazonの書籍ページのURLを渡してやります。URLに埋め込まれているASIN/ISBNを取り出すためです。ここで注意したいのが書籍には紙書籍と電子書籍(Kindle)があるということ。最初は紙書籍なら基本的に発行されているであろうISBNをAPIリクエストのキーにすれば良いかな、と考えていたのですが、調べてみると電子版にはISBNがない!勉強になりました。いうわけで紙書籍の場合はISBN(10桁)を、電子書籍の場合はASINを利用することにします。Number」の略で、Amazonで扱う紙書籍以外の商品に割り振られている一意のナンバーです。いってもやることは簡単。紙書籍の場合はISBNが、電子書籍の場合はASINが商品紹介ページのURLに埋め込まれているので、それを抜き出すだけです。漫画「薄暮のクロニクル(11巻)」の紙書籍版のURLは(略)/dp/4091895352/ref=pd_sim_14_2?(略)Kindle版のURLは(略)/dp/B073F54MNW/ref=tmm_kin_swatch_0?(略)で、前者にはISBN、後者にはASIN(いずれも10桁の英数字)が埋め込まれており、ここからこの10桁の文字を取り出します。最初は「/dp/」と「/ref=」の間の文字を抜き出そうと思ったのです、が「/dp/」を含まないURLも存在したので、「/ref=」の文字位置を検出し、そこからその前の10文字を抜き出すようにしました。ソースがダサいのはご容赦を。これでURLからASIN/ISBNが取得できました。AmazonのAPIにリクエストを送るでは次に取得したASIN/ISBNを使ってAmazonのAPIにリクエストを送り、書籍に関するデータをXML形式で受け取ります。(beta)webservices.amazon.com...といってもこれは簡単。Amazon側でテストツールを用意してくれているからです。これを利用すれば、XMLを発行するまでのプログラムを自動で生成してくれます。上記ページの左側ナビ「LOOKUP」項目より「itemLookup」を選びます。「itemLookup」はASIN/ISBNその他の検索を行えます。parameters」にアクセスキーやアソシエイトタグなど必要項目を入力。この際、「Marketplace」項目をamazon.co.jpに合わせておきましょう。他の国ではエラーになります。続いて「ItemLookup」項目の設定です。「itemId」のValueに検索したい書籍のASINもしくはISBNを入力します。「idType」は「ASIN」で。ASINにISBNを入力しても期待した検索結果が返ります。「ResponseGroup」は特に希望がなければデフォルトの「Images,ItemAttributes,Offers」で問題ありません。request」をクリックすればページ下部に検索結果が表示されます。snippets」のPHPタブにPHPのソースコードが保存されています。このコードをコピーすれば、AmazonのAPIにリクエストを送ってXMLが返ってくるまでを記載したPHPコードが一瞬にして作成可能です。受け取ったXMLから必要な情報を抜き出す処理が必要です。Qiitaパラメータについての説明や書き方について詳しくは触れません(。※ISBNは本のバーコードの下にある数字...qiita.comこちらのページの後半などを参考にしました。Amazonが生成したPHPに記載された$request_urlをfile_get_contentsしてsimplexml_load_stringでパースする、みたいな。今回のケースではASIN/ISBNという一意の番号から書籍情報を得ているので、返ってくる情報も一意のもの。ループ処理などは無し。書籍のタイトルや画像のパスを必要とするものを各変数に格納しHTMLに埋め込みます。整形したHTMLはヨメレバのようにtextareaに表示し、コピーができるようにします。JSでクリップボードにコピーできるように通常であればtextareaのHTMLを選択しCtrl+Cなどでコピー、といった手順を取りますが、大量のリンクを生成するときにはそれすらダルい。いうわけでボタンクリック一発でクリックボードにソースをコピーできるようにしてみます。...qiita.comjqueryを利用したclipboard.jsという便利なライブラリがあったのでこちらを利用。上記ページを参考に設置しました。textareaに一意のIDを付与し、ボタンクリックでtextarea内のHTMLソースがクリップボードにコピーされます。あとはブログ記事など貼り付けたい箇所にペーストするだけ。わずかではありますが作業時間が短縮できました。以上のようなプログラムを組み、上記のようなアソシエイトリンクを埋め込んだHTMLソースを生成することができるように。具体的には別サイト「漫画の虎」にて利用しています。漫画の虎ブログ「漫画の虎」では読んだ漫画の感想やおすすめ漫画まとめなどをひたすら更新。SF・サスペンス・ホラー・コメディ・スポーツなどジャンルは問わず。おもしろい漫画を読んでいきます。manga-blog.netここに記載のBookLive!などのリンクは、いろいろ理由があって別のプログラムで手動挿入していますw。ヨメレバは超絶便利なWEBツールであることは間違いありません。私も引き続き利用させていただきます。自分独自の要素を追加したい、といった時には上記のようにそれっぽいものも自作できます。AmazonのAPIテストツールは便利なので、また利用してみてください。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。コメントデータの処理方法の詳細はこちらをご覧ください。新規タブ・ウィンドウで開くリンクがうっとうしい時に役立つChrome拡張2015.06.182018.09.27ラベルシールをプリントして宛名・差出人ラベルを簡単作成2015.10.222017.08.31ブログに「関連記事」を設置できるブログパーツあれこれ2015.05.192017.09.06ネットで紙の書籍を買えるオンライン書店(Amazon以外)2014.10.012017.02.09Amazonギフト券・クーポンの有効期限2015.05.062016.11.07人気記事カルディで買った瓶詰ボルシチで「ウクライナのおふくろの味」を食す。2015.03.102017.10.11ラスポテトを食べる!屋台の味をお家で2015.11.032020.01.04卵アレルギーのための備忘録。卵成分がはいっている意外な食べ物2015.05.242019.10.01女探偵は砕けない。ミステリー小説「葉村晶シリーズ」レビュー2018.10.162019.12.11「プチプチ」の正式名称って何?2014.10.052018.09.27UNO(ウノ)もいいけどONO(オノ)もおもしろいよ2016.03.112020.01.04サンマルコのカレー、独特な薬味の謎。4種類を食べ比べてみる2015.11.292017.08.31新着記事ウィルキンソン・VOXなど炭酸水・強炭酸水の飲み比べメモ。オススメは?2019.06.132019.06.15語彙力アップ!に学研「ことば選び辞典」。コンパクトで気軽に読めるシリーズ2019.02.04コレステロール値が気になる!ウエルシアでセルフ血液検査をやってみた2019.02.01サバ水煮缶でヘルシーメニュー。基本のトマトソース」で作るミートソースがウマイ。おいしいものが大好き。マニアックな漫画の感想を増やしていきたい所存。新規タブ・ウィンドウで開くリンクがうっとうしい時に役立つChrome拡張2015.06.182018.09.27ラベルシールをプリントして宛名・差出人ラベルを簡単作成2015.10.222017.08.31ブログに「関連記事」を設置できるブログパーツあれこれ2015.05.192017.09.06ネットで紙の書籍を買えるオンライン書店(Amazon以外)2014.10.012017.02.09Amazonギフト券・クーポンの有効期限2015.05.062016.11.07人気記事カルディで買った瓶詰ボルシチで「ウクライナのおふくろの味」を食す。2015.03.102017.10.11ラスポテトを食べる!屋台の味をお家で2015.11.032020.01.04卵アレルギーのための備忘録。卵成分がはいっている意外な食べ物2015.05.242019.10.01女探偵は砕けない。ミステリー小説「葉村晶シリーズ」レビュー2018.10.162019.12.11「プチプチ」の正式名称って何?2014.10.052018.09.27UNO(ウノ)もいいけどONO(オノ)もおもしろいよ2016.03.112020.01.04サンマルコのカレー、独特な薬味の謎。4種類を食べ比べてみる2015.11.292017.08.31新着記事ウィルキンソン・VOXなど炭酸水・強炭酸水の飲み比べメモ。オススメは?2019.06.132019.06.15語彙力アップ!に学研「ことば選び辞典」。コンパクトで気軽に読めるシリーズ2019.02.04コレステロール値が気になる!ウエルシアでセルフ血液検査をやってみた2019.02.01サバ水煮缶でヘルシーメニュー。基本のトマトソース」で作るミートソースがウマイ。おいしいものが大好き。マニアックな漫画の感想を増やしていきたい所存。2013年8月タイトルとURLをコピーしました。