eBay API:最初のステップ

ご存知のように、何かを学び始めることは最も困難です。eBayAPIは、たとえ通常のドキュメントがありますが、例外ではありません。 私自身も最近研究を始めたばかりで、頭の中で希望の絵が形になり始める前に、ドックとサードパーティのリソースにしっかりと登らなければなりませんでした。

この投稿は、eBay APIを使用してすぐに作業を開始する必要がある人、および自分自身のために、将来のことを忘れないようにするためのものです。





クイックスタートガイド



基本的に、eBayにはいわゆる「 クイックスタートガイド 」がありますので、最初にそれを見ていきましょう。

1.新規開発者の登録 -APIへのすべてのリクエストには、いくつかの固有の開発者パラメーターの転送が伴います。 それらを取得する方法は、2番目の段落を読んでください。



2. developer.ebay.comに正常に登録してログインした後、APIリクエストを完了するために必要な「アプリケーションキー」の生成を開始できます。 これを行うには、「 マイアカウント 」セクションに移動し、「アプリケーションキー」ブロックで2セットのキーを生成します。

2.1サンドボックスキー-テストAPIへのリクエストのキー。

2.2プロダクションキー-動作しているAPIへのリクエストのキー。



3.この段落では、「 サンプルアプリケーション 」へのリンクを提供します。このサンプルアプリケーションを使用すると、「Finding API」という名前でAPIの種類の1つに対する要求をテストできます(そうですね:)。 この「サンプルアプリケーション」のページには3つのブロックがあります。

3.1サンプルアプリケーションのソースコード-HTML / JSコードが含まれ、その最下部にJSライブラリが接続されています。URLは、必要なパラメーターが既に設定された「Finding API」URLです。

3.2解析されたサンプル結果-クエリの結果がHTMLページの形式で含まれています。

3.3呼び出し応答-要求の結果がXML形式で含まれます。



4.プログラミング言語ごとにグループ化された開発者のセクションへのリンク。



製品API



1. Finding API -eBay製品のリストを取得するように設計されています。 このAPIは、次の基準で製品を検索する機能を提供します。

1.1 findItemsByCategory-カテゴリー別に製品を検索します。

1.2 findItemsByKeywords-キーワードで製品を検索します。

1.3 findItemsAdvanced-カテゴリとキーワードの混合検索を作成できます。

1.4 findItemsByProduct-製品識別子で製品を検索します。 製品には、たとえば、電話、ビデオゲーム、書籍などが含まれます。



2. Shopping API-主に製品に関する詳細情報を取得するためのもの。 製品に関する情報を取得するには、Finding APIへのリクエストに応じて、検出された製品のリストから取得できるIDを知る必要があります。 このAPIを使用すると、次のクエリを実行できます。

2.1 GetSingleItem-1つの製品に関するすべての公開情報をそのIDで返します。

2.2 GetItemStatus-現在の商品レートに関する情報を返します。同時に、10個の製品に関する情報を要求できます。

2.3 GetShippingCosts-購入者への商品の配送費用を計算できます。 計算のために、製品ID、配送先の国のコード、バイヤーの郵便番号、および購入される/購入された商品のユニット数を転送する必要があります。 この要求を満たす前に、まず製品に出荷価格があることを確認する必要があります。

2.4 GetMultipleItemsはGetSingleItemと同じですが、複数の製品に関する情報を一度に要求できます(最大20製品)。



APIを見つける





最も単純な例に基づいて、このAPIを使用することを検討してください。 XML経由でAPIと通信するための形式を選択し、POSTメソッドを使用してAPIにリクエストを送信します。 しかし、最初に、必要なパラメーターをリストします。



1. X-EBAY-SOA-OPERATION-NAME-このパラメーターの値は、実行しようとしているアクションの名前にする必要があります。 例:findItemsByKeywords、findItemsByCategory;



2. X-EBAY-SOA-SECURITY-APPNAME-このパラメーターでは、「 マイアカウント 」セクションで検索/生成できるAppIDを置き換える必要があります。



POSTメソッドを使用する場合、これらのパラメーターは両方ともリクエストヘッダーで渡す必要があります。 Finding APIの一般的なパラメーターの詳細については、 「API呼び出しの実行 」ページをご覧ください。



次に、「findItemsByKeywords」アクションを使用した製品検索の例を見てみましょう。



// Get entity of http client

$httpClient = new Http_Client('http://svcs.sandbox.ebay.com/services/search/FindingService/' . FINDING_API_VERSION);



// Prepare headers

$httpClient->setHeaders(

array(

'X-EBAY-SOA-OPERATION-NAME: findItemsByKeywords',

'X-EBAY-SOA-SECURITY-APPNAME: ' . APP_ID

)

);



// Prepare body

$httpClient->setBody(

'<?xml version="1.0" encoding="utf-8"?>

<findItemsByKeywordsRequest xmlns="http://www.ebay.com/marketplace/search/v1/services">

<keywords>' . htmlspecialchars($keywords) . '</keywords>

<paginationInput>

<entriesPerPage>10</entriesPerPage>

</paginationInput>

</findItemsByKeywordsRequest>'

);



// Send request

$result = $httpClient->send();









どこで:

1. Http_Client-cURLを使用してAPIにリクエストを送信するための私の小さなクラス。 コードアーカイブにあります。



2.リクエストURLはsvcs.sandbox.ebay.com/services/search/FindingService/v1のようになりますが、ドックは「v1」(apiバージョン)は変更できると言っているので、定数に入れます。



3. setHeaders()メソッドは要求ヘッダーを設定します。 定数APP_IDにはAppIDが格納されます。



4. setBody()メソッドは、リクエスト本文を設定します。 キーワードを渡すキーワードタグを推測するのは難しくありません。 entriesPerPageパラメーターは、10個の製品を返す必要があることをapiに伝えます(findItemsByKeywordsアクションパラメーターの詳細については、 こちらを参照してください )。



5.さて、send()メソッドはリクエストをapiに送信し、そのレスポンスを返します。これはXMLとして$ result変数に配置されます。



ショッピングAPI





GetSingleItem Shopping APIアクションリクエストを使用して拡張製品情報を表示する機能で、小さなアプリケーションを補完します。 最初に、必要なパラメーターをリストします。



1. X-EBAY-API-CALL-NAME-パラメーターは、Shopping API内のアクションの名前を設定します。 例:GetSingleItem、GetItemStatus;



2. X-EBAY-API-APP-ID-パラメーターはAppIDを渡します。



3. X-EBAY-API-REQUEST-ENCODING-APIのリクエスト形式。 POSTメソッドの場合、「XML」を指定する必要があります。



4. X-EBAY-API-VERSION-アプリケーションがサポートするAPIバージョン。 テストでは、699を示しました。



POSTメソッドを使用する場合、すべてのパラメーターは要求ヘッダーで渡す必要があります。 Shopping APIの一般的なパラメーターの詳細については、API呼び出しページをご覧ください。



詳細な製品情報を要求する短いコードを次に示します。



// Get entity of http client

$httpClient = new Http_Client('http://open.api.sandbox.ebay.com/shopping');



// Prepare headers

$httpClient->setHeaders(

array(

'X-EBAY-API-CALL-NAME: GetSingleItem',

'X-EBAY-API-APP-ID: ' . APP_ID,

'X-EBAY-API-REQUEST-ENCODING: ' . SHOPPING_API_DATA_FORMAT,

'X-EBAY-API-VERSION: ' . SHOPPING_API_VERSION

)

);



// Prepare body

$httpClient->setBody(

'<?xml version="1.0" encoding="utf-8"?>

<GetSingleItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">

<ItemID>' . $id . '</ItemID>

<IncludeSelector>TextDescription</IncludeSelector>

</GetSingleItemRequest>'

);



// Send request

$result = $httpClient->send();









ここでは、前の例のように、Shopping APIテストエリアのURLを設定します。これは「 open.api.sandbox.ebay.com/shopping 」になります。 次に、ヘッダーの配列とリクエスト本文を作成します。 リクエストの本文では、ItemIDタグで製品識別子を示しました(ちなみに、eBayの製品IDのサイズはサイズを大きく超えているため、intにキャストすることはお勧めしません)そして、追加データとしてTextDescription(製品のテキスト説明、 GetSingleItemアクションのすべてのパラメーターはここで読むことができます )。



合計





この投稿により、誰かがeBay APIに慣れる時間を短縮できることを願っています。



テストアプリケーションのアーカイブ

すべてのAPIのURLリストページ



All Articles