oskare100 Posted April 19, 2007 Share Posted April 19, 2007 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 Link to comment https://forums.phpfreaks.com/topic/47778-xmlphp-api-question-solved-one-part-need-help-with-selecting/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.