API・SDK

eBay API エラーコード一覧

APIの画像

こんにちは!ゆーたろうです。

この記事では、eBay APIのレスポンス結果で、エラーとなった場合の内容と、対処策をまとめていきます。

エラーレスポンスのXML構成

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

	<Timestamp>2020-05-21T07:10:09.260Z</Timestamp>
	<Ack>Failure</Ack>
	
	<Errors>
		<ShortMessage>Your application encountered an error.</ShortMessage>
		<LongMessage>
			Your application encountered an error. This request is missing required input tag "<StartTimeTo>".
		</LongMessage>
		<ErrorCode>34</ErrorCode>
		<SeverityCode>Error</SeverityCode>
		<ErrorParameters ParamID="0">
			<Value><StartTimeTo></Value>
		</ErrorParameters>
		<ErrorClassification>RequestError</ErrorClassification>
	</Errors>
	
	<Version>1151</Version>
	<Build>E1151_CORE_APISELLING_19187371_R1</Build>

</GetSellerListResponse>

上記のXML例は、GetSellerListリクエストに間違いがあり失敗した時のものですが、下記に示した項目は、いずれのAPI種類でも共通しています。

  • Timestamp:リクエストを送信した日時
  • Ack:リクエストの成否判定(エラーの場合は必ずFailureとなる)
  • ShortMessage:エラーの簡易説明
  • LongMessage:エラーの詳細説明
  • ErrorCode:エラーコード
  • ErrorClassification:エラーの分類
  • Version:APIバージョン

これらの項目を見るだけで、どんなエラーなのかを知ることができます。

エラー一覧

エラーコード:1.20(Application ID invalid.)

エラー内容:アプリケーションIDが無効。

エラー分類:RequestError(リクエスト構文がおかしい)

問題個所の例:

https://open.api.ebay.com/shopping
?callname=GetSingleItem
&appid=<YOUR-APPLICATION-ID>
&version=967

というリクエストがあったときの<YOUR-APPLICATION-ID>の文字列がおかしい。

解決策:下記図の赤枠で囲った部分が、正しいAppIDになるので、その文字列を設定する。

ebayのアプリケーションid

エラーコード:34(Your application encountered an error. This request is missing required input tag “<StartTimeTo>”.)

エラー内容:リクエスト内に<StartTimeTo>タグがない。

エラー分類:RequestError(リクエスト構文がおかしい)

問題個所:以下のように、StartTimeFromしかリクエストしなかったため。

$XML = 
...
'<StartTimeFrom>2020-01-01T00:00:00.005Z</StartTimeFrom> ' . 
...;

解決策:以下のように、StartTimeToタグも追加する。

$XML = 
...
'<StartTimeFrom>2020-01-01T00:00:00.005Z</StartTimeFrom> ' . 
'<StartTimeTo>2020-04-21T23:59:59.005Z</StartTimeTo>' . 
...;

参考サイト:How to fix request is missing required input tag

【「StartTimeFrom」=開始日時】さえ指定していれば、それ以降を全て取得できるのかなと思いましたが、このリクエストでは「120日間以内の期間にあるデータしか取れない」制約が使用上あるので、StartTimeToも必要だったようです。

エラーコード:21843(The job context object is not supported by Action Service Framework.)

エラー内容:ヘッダーとXMLで、APIリクエスト名称が異なる。

エラー分類:RequestError(リクエスト構文がおかしい)

問題個所:以下のように、headerとxmlで、API名称が違うため。

$header = 'X-EBAY-API-CALL-NAME:GetItem';

$XML = '<GetSellerListRequest>';

解決策:以下のように、headerとXMLのリクエスト名称を合わせる。

$header = 'X-EBAY-API-CALL-NAME:GetItem';

$XML = '<GetItemRequest>';

参考サイト:Php, Ebay Tradding Api Error Invalid job context type – php

直接本エラーについては記載はなかったが、

CURLが次のHTTPヘッダーを正しい値で送信することを確認してください。
X-EBAY-API-COMPATIBILITY-LEVEL:833
X-EBAY-API-DEV-NAME:[自分のデバイスで置き換える]
X-EBAY-API-APP-NAME:[アプリIDで置き換え]
X-EBAY-API-CERT-NAME:[自分のCERTIDで置き換え]
X-EBAY-API-SITEID:2
X-EBAY-API-CALL-NAME:AddItems

の個所で、headerとxmlの指定が違っていることに、ピンときた。