ebayのAPI触ってみた

##はじめに
eBay Developers Programへの登録を済ませておいてください
[こちら](https://www.ebay.co.jp/developer/guide)にガイドがあるので参考にしてください

##Finding APIを使用してみる
[Finding API](https://www.ebay.co.jp/developer/api/other)は
eBayプラットフォームの商品検索機能です
eBayに出品された商品に対する検索結果をAPIで取得することができます

pythonで実行してみます

```python:ebay_api.py
import requests
import csv

appkey = 取得したAPP KEY
keywords = 検索したいキーワード

URL = "http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords"\
    "&SERVICE-VERSION=1.0.0"\
    f"&SECURITY-APPNAME={appkey}"\
    "&RESPONSE-DATA-FORMAT=JSON"\
    "&REST-PAYLOAD"\
    f"&keywords={keywords}"


def get_page():
    request = requests.get(URL)
    products = request.json()

    for item in (products["findItemsByKeywordsResponse"][0]["searchResult"][0]["item"]):
        itemId = item["itemId"][0]
        title = item["title"][0]
        currency = item["sellingStatus"][0]["currentPrice"][0]["@currencyId"]
        price = item["sellingStatus"][0]["currentPrice"][0]["__value__"]

        data = {
            "itemId": itemId,
            "title": title,
            "currency": currency,
            "price": price
        }
        with open("eBayAPI.csv", "a") as csvfile:
            row = [
                data["itemId"],
                data["title"],
                data["currency"],
                data["price"]
            ]
            writer = csv.writer(csvfile)
            writer.writerow(row)


if __name__ == "__main__":
    get_page()
```

## 返ってくる値

```python
def get_page():
    request = requests.get(URL)
    products = request.json()
    print(products)
```

ここで返ってくる値はこのような形で返ってきます。

```json
{
  "findItemsByKeywordsResponse": [{
    "ack": ["Success"],
    "version": ["1.13.0"],
    "timestamp": ["2021-01-07T03:03:03.718Z"],
    "searchResult": [{
      "@count": "100",
      "item": [
        {
          "itemId": ["303483892785"],
          "title": ["Spider-man retro Marvel Legends Venom Miles Morales Spiderverse Gwen Stacy UPICK"],
          "globalId": ["EBAY-US"],
          "primaryCategory": [{
            "categoryId": ["158671"],
            "categoryName": ["Comic Book Heroes"]
          }],
          "galleryURL": ["https://thumbs1.ebaystatic.com/pict/04040_0.jpg"],
          "viewItemURL": ["https://www.ebay.com/itm/Spider-man-retro-Marvel-Legends-Venom-Miles-Morales-Spiderverse-Gwen-Stacy-UPICK-/303483892785?var=0"],
          "autoPay": ["true"],
          "postalCode": ["951**"],
          "location": ["San Jose,CA,USA"],
          "country": ["US"],
          "shippingInfo": [{
            "shippingServiceCost": [{
              "@currencyId": "USD",
              "__value__": "5.99"
            }],
            "shippingType": ["FlatDomesticCalculatedInternational"],
            "shipToLocations": ["Worldwide"],
            "expeditedShipping": ["false"],
            "oneDayShippingAvailable": ["false"],
            "handlingTime": ["1"]
          }],
          "sellingStatus": [{
            "currentPrice": [{
              "@currencyId": "USD",
              "__value__": "12.95"
            }],
            "convertedCurrentPrice": [{
              "@currencyId": "USD",
              "__value__": "12.95"
            }],
            "sellingState": ["Active"],
            "timeLeft": ["P5DT0H12M28S"]
          }],
          "listingInfo": [{
            "bestOfferEnabled": ["false"],
            "buyItNowAvailable": ["false"],
            "startTime": ["2020-02-12T03:15:31.000Z"],
            "endTime": ["2021-01-12T03:15:31.000Z"],
            "listingType": ["FixedPrice"],
            "gift": ["false"], "watchCount": ["502"]
          }],
          "returnsAccepted": ["false"],
          "condition": [{
            "conditionId": ["3000"],
            "conditionDisplayName": ["Used"]
          }],
          "isMultiVariationListing": ["true"],
          "topRatedListing": ["false"]
        },
        {
          "itemId": ["133473696803"]...

```

各自で必要な値を抜き出してください。
今回は、`商品ID、商品名、通貨、値段`を取得する様にしています。

```python
        itemId = item["itemId"][0]
        title = item["title"][0]
        currency = item["sellingStatus"][0]["currentPrice"][0]["@currencyId"]
        price = item["sellingStatus"][0]["currentPrice"][0]["__value__"]
```

あとは取得した商品情報がcsvで出力される様にしています。

他にもフィルター検索や特定のストアで検索かけることもできるみたいなので
上手く活用していけば市場調査が楽になるかと思います。

次はebaysdkの記事について書こうと思います。