3

eBay からセラー リストを取得しようとしていますが、このコードを実行するたびにエラーが発生します。

API 呼び出し「GeteBayOfficialTime」が無効であるか、このリリースではサポートされていません

Zend Serverを搭載したMacでこれを実行しています。

PHP でのリクエスト:

define('XML_POST_URL', 'https://api.sandbox.ebay.com/ws/api.dll');

$theData ='
    <?xml version="1.0" encoding="utf-8"?>
    <GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">
    <RequesterCredentials>
    <eBayAuthToken>My Auth Key</eBayAuthToken>
    </RequesterCredentials>
        <Pagination ComplexType="PaginationType">
        <EntriesPerPage>1</EntriesPerPage>
    <PageNumber>1</PageNumber>
    </Pagination>
    <WarningLevel>Low</WarningLevel>
    <StartTimeFrom>2011-07-12T21:59:59.005Z</StartTimeFrom>
    <StartTimeTo>2011-07-30T21:59:59.005Z</StartTimeTo>
    <DetailLevel>ReturnAll</DetailLevel>
    </GetSellerListRequest>
';

$headers = array(
    'Content-Type' => 'text/xml',
    'X-EBAY-API-COMPATIBILITY-LEVEL' => '727',
    'X-EBAY-API-DEV-NAME' => '03dbea79-6089-4a00-8b3f-3114882e5d07',
    'X-EBAY-API-APP-NAME' => 'sarfaraz-6e72-49e2-a7c0-ce2d2a48702b',
    'X-EBAY-API-CERT-NAME' => 'd8382047-b425-40d6-8250-bac1497dc510',
    'X-EBAY-API-SITEID' => '0',
    'X-EBAY-API-CALL-NAME' => 'GetSellerList'
);

/**
 * Initialize handle and set options
 */
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, XML_POST_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $theData);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

/**
 * Execute the request
 */
$result = curl_exec($ch);

/**
 * Close the handle
 */
curl_close($ch);

/**
 * Output the results and time
 */
header('Content-Type: text/xml');
echo $result;  

応答:

<GeteBayOfficialTimeResponse>
    <Timestamp>2011-07-29 15:59:21</Timestamp>
    <Ack>Failure</Ack>
    <Errors>
        <ShortMessage>Unsupported API call.</ShortMessage>
        <LongMessage>The API call "GeteBayOfficialTime" is invalid or not supported in this release.</LongMessage>
        <ErrorCode>2</ErrorCode>
        <SeverityCode>Error</SeverityCode>
        <ErrorClassification>RequestError</ErrorClassification>
    </Errors>
    <Build>13564081</Build>
</GeteBayOfficialTimeResponse>
4

2 に答える 2

8

問題は、ヘッダーの定義方法です。連想配列ではなく、標準配列である必要があります。正しい形式については、以下を参照してください。

$headers = array(
'Content-Type: text/xml',
'X-EBAY-API-COMPATIBILITY-LEVEL: 727',
'X-EBAY-API-DEV-NAME: 03dbea79-6089-4a00-8b3f-3114882e5d07',
'X-EBAY-API-APP-NAME: sarfaraz-6e72-49e2-a7c0-ce2d2a48702b',
'X-EBAY-API-CERT-NAME: d8382047-b425-40d6-8250-bac1497dc510',
'X-EBAY-API-SITEID: 0',
'X-EBAY-API-CALL-NAME: GetSellerList'

);

于 2012-05-14T18:11:00.293 に答える
1

正しい XML を取得するには、API テスト ツールを使用できます。使用する API バージョンを選択することもできます。実行したい呼び出しを選択するだけで、XML を取得できます。多くの場合、ドキュメントは古くなっています。

于 2012-01-05T01:03:07.057 に答える