XML/PHP API Question! Solved one part need help with selecting!
Hello,
I've managed to recieve all messages from Ebay within the data range I specified with the call GetMemberMessages (http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/io_GetMemberMessages.html) but I have one problem left I really need help with.
Here is the code I used:
<?php
include('functions.php');
include('variables.php');
error_reporting(E_ALL);
ini_set('display_errors', '1');
//SiteID must also be set in the Request's XML
//SiteID = 0 (US) - UK = 3, Canada = 2, Australia = 15, ....
//SiteID Indicates the eBay site to associate the call with
$siteID = 0;
//the call being made:
$verb = 'GetMemberMessages';
//Regulates versioning of the XML interface for the API
$compatabilityLevel = 433;
//get an array of strings containing the required headers
$headers = buildEbayHeaders($devID, $appID, $certID, $compatabilityLevel, $siteID, $verb);
// Time from and time to
$time_from = date('Y-m-d\TH:i:s',strtotime(\"-10 days\")).'.799Z';
$time_to = date('Y-m-d\TH:i:s',strtotime(\"+ 1 day\")).'.799Z';
///Build the request Xml string
$requestXmlBody = 'xml version=\"1.0\" encoding=\"utf-8\">';
$requestXmlBody .= '<GetMemberMessagesRequest xmlns=\"urn:ebay:apis:eBLBaseComponents\">';
$requestXmlBody .= \"<RequesterCredentials><eBayAuthToken>$userToken</eBayAuthToken></RequesterCredentials>\";
$requestXmlBody .= \"<MailMessageType>All</MailMessageType>\";
$requestXmlBody .= \"<EndCreationTime>$time_to</EndCreationTime>\";
$requestXmlBody .= \"<StartCreationTime>$time_from</StartCreationTime>\";
$requestXmlBody .= '</GetMemberMessagesRequest>';
$responseXml = sendHttpRequest($requestXmlBody, $serverUrl, $headers);
if(stristr($responseXml, 'HTTP 404') || $responseXml == '')
die('<P>Error sending request');
//Xml string is parsed and creates a DOM Document object
$responseDoc = domxml_open_mem($responseXml);
//get any error nodes
$errors = $responseDoc->get_elements_by_tagname('Errors');
//if there are error nodes
if(count($errors) > 0)
{
echo '<P><B>eBay returned the following error(s):</B>';
//display each error
//Get error code, ShortMesaage and LongMessage
$code = $errors[0]->get_elements_by_tagname('ErrorCode');
$shortMsg = $errors[0]->get_elements_by_tagname('ShortMessage');
$longMsg = $errors[0]->get_elements_by_tagname('LongMessage');
//Display code and shortmessage
echo '<P>', $code[0]->get_content(), ' : ', str_replace(\">\", \">\", str_replace(\"<\", \"<\", $shortMsg[0]->get_content()));
//if there is a long message (ie ErrorLevel=1), display it
if(count($longMsg) > 0)
echo '<BR>', str_replace(\">\", \">\", str_replace(\"<\", \"<\", $longMsg[0]->get_content()));
}
else //no errors
{
//get results nodes
$itemNodes = $responseDoc->get_elements_by_tagname('MemberMessage');
foreach($itemNodes as $item){
$message = $item->get_elements_by_tagname('MemberMessageExchange');
{
//display all the elements of each item
foreach($item->child_nodes() as $itemChild)
echo $itemChild->get_content();
}
}
}
?>
The problem is that when I run that code I get all information back - everything - item numbers, emails, questions and everything else. I've no idea of how to select the information I want to use. That's what I really need help with.
I tried to use echo $itemChild->get_content('SenderEmail'); to get only the sender email but it didn't work, I still got everything back. I'm really greatful for any help I can get.
Thanks in advance,
Oskar R