Laravel用AmazonAPIモジュール

Laravel + SPAの勉強を進めてます。
手始めに「Kindle Unlimited」対象の本を検索できるようなサービスを作成してみようとしています。

経緯

最近Kindle Unlimitedに加入してみました。
が、Kindle Unlimitedの本って、Amazon公式サイトだとなんか検索しにくいと感じていまして、それなら、自分で、自分が使いやすい検索画面を作ってしまおうということで調査を開始しました。

Laravel用 AmazonAPIモジュールのインストール

探せばあるものですね。
laravel用のAmazon APIモジュールがあったので、プロジェクトに組み込みます。
https://github.com/kawax/laravel-amazon-product-api

コマンドは以下の通り。作成したLaravelプロジェクトのフォルダに移動して実行します。

composer require revolution/laravel-amazon-product-api
php artisan vendor:publish --provider="Revolution\Amazon\ProductAdvertising\Providers\AmazonProductServiceProvider"

.envファイルの編集

Laravelの.envファイルにAPI用の設定を追加。
COUNTRYは日本の場合、co.jpを指定することになります。

AMAZON_API_KEY=
AMAZON_API_SECRET_KEY=
AMAZON_ASSOCIATE_TAG=
AMAZON_COUNTRY=co.jp

とりあえず動かす

RESTApiコントローラを作成し、アマゾンAPIを読みだしてみます。

\routes\api.php

Route::resource('search', 'KindleSearchApiController');

\app\Http\Controllers\KindleSearchApiController.php

use AmazonProduct; // 追加

public function index()
{
    //
    $response = AmazonProduct::search('All', 'amazon' , 1);

    return $response;
}

URLにアクセスしてみる

とりあえずレスポンスが取得できます

http://kus.test/api/search
enter image description here

Kindle Unlimitedの商品に絞ってみる

AmazonAPIでは、Node(分類のようなもの?)で商品を絞ることができます。
以下の記事で、AmazonAPIのnode一覧が確認できるので、Kindle Unlimitedのノード番号「4486610051」を得ることができます。
https://qiita.com/kobake@github/items/88001f62983211027f63

\app\Http\Controllers\KindleSearchApiController.php

public function index() {
    // 
    // $response = AmazonProduct::search('All', 'amazon' , 1); 
    $response = AmazonProduct::browse('4486610051');

    return $response;
}

enter image description here

終わりに

ひとまずAmazonAPIを利用してKindle Unlimitedに絞った商品を取得することができました。
Vue.jsと組み合わせれば、読み放題に特化した検索サイトが作れそうですね。

1件のピンバック

コメントは現在停止中です。