Я много раз перечитывал документацию и пробовал решения, которые нашел в inte rnet, и я изо всех сил пытаюсь получить нужные данные из eBay Shopping API с помощью запроса GetSingleItem. Я полагаю, что мои заголовки и запрос xml настроены правильно на основе примеров в документации, но я не могу понять, как на самом деле отправить запрос и получить ответ xml. Может ли кто-нибудь помочь мне на следующем шаге, пожалуйста?
Как мне на самом деле отправить запрос и получить ответ?
Мои заголовки и xml запрос выглядят так:
// Create headers
$headers = array
(
'X-EBAY-API-APP-ID: ' . $app_id,
'X-EBAY-API-SITE-ID: ' . $site_id,
'X-EBAY-API-CALL-NAME: ' . $call_name,
'X-EBAY-API-VERSION: ' . $version,
'X-EBAY-API-REQUEST-ENCODING: ' . $encoding,
);
// Generate XML request
$xml_request = '<?xml version="1.0" encoding="utf-8"?>\n';
$xml_request .= '<GetSingleItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">\n';
$xml_request .= '<ItemID>283814879195</ItemID>\n';
$xml_request .= '<IncludeSelector>Details</IncludeSelector>\n';
$xml_request .= '</GetSingleItemRequest>';
Каков следующий шаг?
Если это поможет, это мой полный код, который я уже пробовал, но я получаю «Не удалось загрузить», когда я пытаюсь использовать simplexml_load_string. Я также удалил app_id для безопасности:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
function getItem($itemID) {
$endpoint = 'https://open.api.ebay.com/shopping';
$app_id = 'XXXXXXXXXXX';
$site_id = '3';
$call_name = 'GetSingleItem';
$version = '863';
$encoding = 'xml';
// Create headers to send with CURL request.
$headers = array
(
'X-EBAY-API-APP-ID: ' . $app_id,
'X-EBAY-API-SITE-ID: ' . $site_id,
'X-EBAY-API-CALL-NAME: ' . $call_name,
'X-EBAY-API-VERSION: ' . $version,
'X-EBAY-API-REQUEST-ENCODING: ' . $encoding,
);
// Generate XML request
$xml_request = '<?xml version="1.0" encoding="utf-8"?>\n';
$xml_request .= '<GetSingleItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">\n';
$xml_request .= '<ItemID>283814879195</ItemID>\n';
$xml_request .= '<IncludeSelector>Details</IncludeSelector>\n';
$xml_request .= '</GetSingleItemRequest>';
$session = curl_init($endpoint); // create a curl session
curl_setopt($session, CURLOPT_POST, true); // POST request type
curl_setopt($session, CURLOPT_HTTPHEADER, $headers); // set headers using $headers array
curl_setopt($session, CURLOPT_POSTFIELDS, $xml_request); // set the body of the POST
curl_setopt($session, CURLOPT_RETURNTRANSFER, true); // return values as a string, not to std out
$responsexml = curl_exec($session); // send the request
curl_close($session); // close the session
return $responsexml; // returns a string
}
$itemID = '283814879195';
$resp = simplexml_load_string(getItem($itemID)) or die("Failed to load");
print($resp->Item->ItemID);
?>