5. 実践の前に:サンドボックス環境でAPIを安全に試そう

前回の記事はこちら

前回の記事では、APIを利用するための「APIキーセット(アプリの身分証明書)」と「ユーザートークン(あなたからの委任状)」という、2つの重要な鍵を手に入れました。これで、APIに指示を出す準備は万全です。

しかし、いきなり実際の店舗で試すのは少し怖いですよね。もし操作を間違えて、大事な商品の情報を変えてしまったら大変です。

そこで今回は、本番の店舗に一切影響を与えずに、心ゆくまでAPIの練習ができる安全な練習場、「サンドボックス環境」についてご紹介します。

サンドボックスとは? 安全な「砂場」で遊ぼう

サンドボックス(Sandbox)とは、その名の通り「砂場」を意味します。子供たちが砂場で自由に山やトンネルを作って遊ぶように、開発者やセラーがリスクなくAPIを試すことができる、隔離されたテスト環境のことです。

このサンドボックスは、本物のeBayサイト(本番環境)とそっくりに作られていますが、完全に独立しています。ここで何が起きても、あなたの実際の店舗データ、商品、売上には一切影響しません。

  • サンドボックスで商品を出品しても、実際には出品されない。

  • サンドボックスで商品を削除しても、実際の在庫は減らない。

  • サンドボックスでの操作は、もちろん手数料もかからない。

APIの操作に慣れるまでは、まずこのサンドボックスで十分に練習することが、成功への一番の近道です。

1. 練習の準備:サンドボックス用のテストユーザーを作成する

サンドボックス環境で遊ぶためには、サンドボックス専用の住人、つまり「テストユーザー」が必要です。このユーザーも、あなたの本番アカウントとは無関係です。

前編では既にテストユーザーを用意できたでしたら、ここでの手順をスキップしても構えません、どんどん進んで行きましょう。

テストユーザー作成手順

  1. eBay開発者ポータルにログインします。

  2. 右上にあるメニューからUser Access Tokensを探してクリックします。

  3. 開いたUser Tokens(eBay Sign-In)ページで Register a new Sandbox userを探してクリックします

  4. 登録フォームが表示されるので、テストユーザーの国、ユーザー名、パスワードなどを入力して作成します。

このテストユーザーは、後でサンドボックス版のeBayサイト(https://sandbox.ebay.com/)にログインして、APIでの操作結果を確認するために使います。

2. 初めてのAPIコール:テスト商品を出品してみよう

準備が整いました。いよいよ、APIを実際に動かしてみましょう。

今回は、プログラミングコードを1行も書かずにAPIを試せる、開発者ポータルの便利ツール「API Explorer」を使ってみます。API Explorerは Develop > Tools > API Explorerで見つけられます。

ここでは例として、Trading APIのAddItemという命令(コール)を使い、テスト商品を1つ出品してみます。下の画像のように、ゆっくりやりましょう。

ステップ1:ツールの設定と認証

まず、API Explorerを開き、私たちが前回取得した鍵と合言葉を設定します。

  • Environment (環境): 「Sandbox」を選択します。

  • Token (トークン): あなたのサンドボックス用ユーザートークンを入力します。画像の1に書いてあるように、Get OAuth User Tokenをクリックすると、簡単にユーザートークンを貰えます。


ステップ2:「AddItem API」を選択

次に、Select APIにTrading APIを選択し、API CALLにAddItemを選択しましょう。Select API Versionはそのままで結構です。


ステップ3:「注文内容(リクエスト)」の準備

送る「注文内容」を作成します。Trading APIでは、XMLという形式で指示を書くのがルールです。以下のサンプルを、API ExplorerではAPIを選択する度に自動的にリクエスト(Request Body)を入力できます、ここでは複雑なパラメーターをメモしなくても大丈夫です。内容は以下のコード欄にコピー&ペーストしてみてください。


XML:

<?xml version="1.0" encoding="utf-8"?>
<!-- これはeBay商品中心で新しい商品を発行するためのXMLドキュメントです。 -->
<AddItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
  <!-- これはAddItemRequest要素で、eBay商品中心で新しい商品を発行するために使用されます。 -->
  <Item>
    <!-- これはItem要素で、発行する商品の詳細を記述します。 -->
    <Title>API練習用のテスト商品22</Title>
      <!-- これはTitle要素で、商品のタイトルを記述します。 -->
    <Description>
      <!-- これはDescription要素で、商品の詳細説明を記述します。 -->
      これはAPIを使って出品したテスト商品です。安全なサンドボックス環境で作成されました。
    </Description>
    <PrimaryCategory>
      <!-- これはPrimaryCategory要素で、商品の主なカテゴリを指定します。 -->
      <CategoryID>14111</CategoryID>
      <!-- これはCategoryID要素で、商品のカテゴリの識別番号を指定します。 -->
    </PrimaryCategory>

    <StartPrice>19.99</StartPrice>
      <!-- これはStartPrice要素で、商品の起払価格を指定します。 -->
    <Country>JP</Country>
      <!-- これはCountry要素で、商品の国や地域を指定します。 -->
    <Currency>USD</Currency>
      <!-- これはCurrency要素で、商品の通貨を指定します。 -->
    <DispatchTimeMax>3</DispatchTimeMax>
      <!-- これはDispatchTimeMax要素で、商品の最大配送時間を指定します。 -->
    <ListingType>FixedPriceItem</ListingType>
      <!-- これはListingType要素で、商品の出品タイプを指定します。 -->
    <ListingDuration>GTC</ListingDuration>
      <!-- これはListingDuration要素で、商品の上様時間を指定します。 -->
    <Location>Tokyo</Location>
      <!-- これはLocation要素で、商品の配送先を指定します。 -->
    <PostalCode>100-0001</PostalCode>
      <!-- これはPostalCode要素で、商品の郵便番号を指定します。 -->

    <ReturnPolicy>
      <!-- これはReturnPolicy要素で、商品の返品ポリシーを指定します。 -->
      <ReturnsAcceptedOption>ReturnsAccepted</ReturnsAcceptedOption>
      <!-- これはReturnsAcceptedOption要素で、返品を受け付けるかどうかを指定します。 -->
      <RefundOption>MoneyBack</RefundOption>
      <!-- これはRefundOption要素で、返金方式を指定します。 -->
      <ReturnsWithinOption>Days_30</ReturnsWithinOption>
      <!-- これはReturnsWithinOption要素で、返品期限を指定します。 -->
      <ShippingCostPaidByOption>Buyer</ShippingCostPaidByOption>
      <!-- これはShippingCostPaidByOption要素で、送料の負担を指定します。 -->
    </ReturnPolicy>

    <ShippingDetails>
      <!-- これはShippingDetails要素で、商品の配送詳細を記述します。 -->
      <ShippingServiceOptions>
        <!-- これはShippingServiceOptions要素で、商品の配送サービスオプションを指定します。 -->
        <ShippingService>StandardShippingFromOutsideUS</ShippingService>
          <!-- これはShippingService要素で、商品の配送サービスを指定します。 -->
        <ShippingServiceCost>10.00</ShippingServiceCost>
          <!-- これはShippingServiceCost要素で、商品の配送サービス料金を指定します。 -->
        <ShippingServicePriority>1</ShippingServicePriority>
          <!-- これはShippingServicePriority要素で、商品の配送サービス優先度を指定します。 -->
      </ShippingServiceOptions>
    </ShippingDetails>

  </Item>
</AddItemRequest>


どうでしょう?「API練習用のテスト商品」が、無事に出品されているはずです!

おめでとうございます!これであなたは、APIとの初めての対話を成功させました。

さて、今回は伝統的なTrading APIを使いましたが、現在eBayでは、よりモダンで使いやすい「RESTful API」という新しい形式のAPIが主流になりつつありますが、Trading APIは商品の出品、在庫連携、商品の修正、商品の取り下げなどに対して完備な機能がお揃いでいます、自分とビッタリ なAPIを使ってみましょう。

次回は、そのモダンな「RESTful API」の世界を覗いてみます。特に在庫管理や注文処理で強力なInventory APIやFulfillment API、そしてOAuth2.0をご紹介していきます。

APIは難しくない!あなたのビジネスを加速させる魔法の杖です。



リファレンス:サンドボックス環境 vs 本番環境と主な違い一覧


特性 

サンドボックス環境

本番環境

環境の目的

APIの学習、開発、テスト、デバッグ用

実際の商取引、本番運用環境 

使用データ

テスト専用のユーザー、商品、注文データ。実データに影響なし

実際の店舗データ、顧客情報、取引履歴

APIキー

サンドボックス用APIキーセットを使用

本番用APIキーセットを使用 

APIエンドポイント 

サンドボックス専用のURL

本番環境用のURL

費用発生 

通常なし(API利用自体は無料だが、本番では出品料等が発生)

API利用自体は無料だが、取引に伴う手数料等が発生

影響範囲 

サンドボックス環境内のみに限定

実際のeBay店舗、顧客、取引に直接影響


トップに戻る