Jump to content

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


oskare100

Recommended Posts

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
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.