スポンサーリンク
GolangでAmazon Product Advertising APIから情報を取得する方法を紹介します!
Amazon Product Advertising APIとは、Amazonで売られている商品の情報を取得するAPIです。
つまり、Amazonの情報を自由に使用できるようになります!
スポンサーリンク
Contents
今回の環境
今回使用する技術です。
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 ${検索したいワード}
スポンサーリンク
スポンサーリンク