golang

GolangでAmazon Product Advertising APIを叩く

GolangでAmazon Product Advertising APIから情報を取得する方法を紹介します!

Amazon Product Advertising APIとは、Amazonで売られている商品の情報を取得するAPIです。

つまり、Amazonの情報を自由に使用できるようになります!

今回の環境

今回使用する技術です。

Golang

dotenv

go-amazon-product-advertising-api

Golangのセットアップ

Golangのフォルダ構成

今回のGolangのフォルダ構成は以下のようになります!

$GOPATH/src/github.com
┗ sample
 ┣ main.go
 ┗ .env

パッケージのインストール

dotenvをインストール

環境変数を管理するdotenv(.env)を利用できるパッケージをインストールします。

go get -u github.com/joho/godotenv

go-amazon-product-advertising-apiをインストール

AmazonのAPIに接続を楽にしてくれるパッケージをインストールします。

go get -u github.com/ngs/go-amazon-product-advertising-api/amazon

GolangでAmazonProductAdvertisingAPIを叩く処理

main.goの処理

package main

import (
	"flag"
	"fmt"
	"log"
	"strings"

	"github.com/joho/godotenv"
	"github.com/ngs/go-amazon-product-advertising-api/amazon"
)

func main() {
	loadEnv()
	arg := getCmdArgs()
	fmt.Println("arg", arg)

	client, err := amazon.NewFromEnvionment()
	if err != nil {
		log.Fatal(err)
	}
	res, err := client.ItemSearch(amazon.ItemSearchParameters{
		SearchIndex: amazon.SearchIndexBooks,
		Keywords:    arg,
	}).Do()
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%d results found\n\n", res.Items.TotalResults)
	for _, item := range res.Items.Item {
		fmt.Printf(`-------------------------------
[Title] %v
[URL]   %v
`, item.ItemAttributes.Title, item.DetailPageURL)
	}
}

func getCmdArgs() string {
	flag.Parse()
	args := flag.Args()
	arg := strings.Join(args, " ")
	return arg
}

func loadEnv() {
	err := godotenv.Load()
	if err != nil {
		panic("Error loading .env file")
	}
}

.env

amazon-product-advertising-apiの情報を設定してください。

AWS_ACCESS_KEY_ID=${YOUR_AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY=${YOUR_AWS_SECRET_ACCESS_KEY}
AWS_PRODUCT_REGION=JP
AWS_ASSOCIATE_TAG=xxxxx-22

プログラムを実行する

これで結果が返って来れば成功です!

go run main.go ${検索したいワード}
ABOUT ME
アバター
ロッピー
コンサルタントから2018年にエンジニアに転向。年収400万円のサラリーマンエンジニアから、半年で月収100万円を稼ぐエンジニアになった。 Python、Golangなど単価の高い言語を得意とする。
この記事を読んでいる人はこんな記事も読んでいます!