XML/PHP API Question! Solved one part need help with selecting!

Discussion in 'PHP' started by oskare100, Apr 19, 2007.

  1. #1
    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(">", "&gt;", str_replace("<", "&lt;", $shortMsg[0]->get_content()));
            //if there is a long message (ie ErrorLevel=1), display it
            if(count($longMsg) > 0)
                echo '<BR>', str_replace(">", "&gt;", str_replace("<", "&lt;", $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();
            
    			}
        
        
        }
        
        }
    ?> 
    PHP:
    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
     
    oskare100, Apr 19, 2007 IP