この投稿は、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リストページ