We are attempting to build an API to play audiobooks on Sonos and we have run into the issue that seeking through tracks seems to be specifically disabled for audiobook type containers. We noticed this issue when we set the container type to 'container' and found that not only was seeking around the track possible, but so was "Quick Skips," which are only supposed to be possible for audiobooks and podcasts (https://developer.sonos.com/build/content-service-get-started/supported-audio-content/).
Here is what playback looks like when the container type for our chapter tracks is set to 'audiobook' and here's what it looks like when the container type is set to 'container.' Why are we running into this issue and is there any way to allow for seeking and quick skips within a track for tracks within an audiobook container?
Here are example getMetadata responses from our service.
Root:
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<getMetadataResponse xmlns="http://www.sonos.com/Services/1.1">
<getMetadataResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<index>0</index>
<count>1</count>
<total>1</total>
<mediaCollection>
<id>audiobook:33462:2617184</id>
<itemType>container</itemType>
<title>The Grapes of Wrath</title>
<summary>First published in 1939, The Grapes of Wrath creates an unforgettable portrait of the migrants who left the dust bowl for the promised land of California. Although he wrote it quickly, Steinbeck spent much time gathering detailed reports of the desperate conditions in migrant camps. He also worked in one camp helping to care for its starving residents. Although they have planted the land for generations, the Joads are tenant farmers. Now drought and mechanization have forced them off the Oklahoma farm they call home. As they travel toward new jobs in California, the penniless, hungry Joads learn that America has no mercy for the poor. Their fate is one that was repeated in hundreds of lives. Brilliant in its fusion of drama and rhetoric, The Grapes of Wrath changed the way the world saw migrant workers. They would never again be faceless masses who could be ignored and abandoned. This landmark work's impact earned John Steinbeck the Pulitzer Prize and contributed...</summary>
<author>John Steinbeck</author>
<narrator>Dylan Baker</narrator>
<canPlay>true</canPlay>
<albumArtURI>https://img1.od-cdn.com/ImageType-150/1694-1/5CE/FF2/0E/{5CEFF20E-0C05-4FA1-8903-34D26124FC29}Img150.jpg</albumArtURI>
<canResume>true</canResume>
</mediaCollection>
</getMetadataResult>
</getMetadataResponse>
</s:Body>
</s:Envelope>
Title:
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<getMetadataResponse xmlns="http://www.sonos.com/Services/1.1">
<getMetadataResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<index>0</index>
<count>20</count>
<total>20</total>
<mediaMetadata>
<id>navEl:33462:2617184:0:0</id>
<itemType>track</itemType>
<title>The Grapes of Wrath [0/20]</title>
<mimeType>audio/mpeg</mimeType>
<trackMetadata>
<author>John Steinbeck</author>
<narrator>Dylan Baker</narrator>
<albumArtURI>https://....Img150.jpg</albumArtURI>
<canPlay>true</canPlay>
<canAddToFavorites>false</canAddToFavorites>
</trackMetadata>
</mediaMetadata>
<mediaMetadata>
<id>navEl:33462:2617184:1:0</id>
<itemType>track</itemType>
<title>The Grapes of Wrath [1/20]</title>
<mimeType>audio/mpeg</mimeType>
<trackMetadata>
<author>John Steinbeck</author>
<narrator>Dylan Baker</narrator>
<albumArtURI>https://img1.od-cdn.com/ImageType-150/1694-1/5CE/FF2/0E/{5CEFF20E-0C05-4FA1-8903-34D26124FC29}Img150.jpg</albumArtURI>
<canPlay>true</canPlay>
<canAddToFavorites>false</canAddToFavorites>
</trackMetadata>
</mediaMetadata>
<mediaMetadata>
<id>navEl:33462:2617184:2:0</id>
<itemType>track</itemType>
<title>The Grapes of Wrath [2/20]</title>
<mimeType>audio/mpeg</mimeType>
<trackMetadata>
<author>John Steinbeck</author>
<narrator>Dylan Baker</narrator>
<albumArtURI>https://.....Img150.jpg</albumArtURI>
<canPlay>true</canPlay>
<canAddToFavorites>false</canAddToFavorites>
</trackMetadata>
</mediaMetadata>
<!--More MediaMetadata Elements-->
</getMetadataResult>
</getMetadataResponse>
</s:Body>
</s:Envelope>
Are there any additional parameters that we have to include to make seeking work for audiobooks?
It looks like you're missing the duration element in trackMetadata. The fact that the Quick Skip buttons show up for the generic container itemType is unintended.
The Sonos app shows Quick Skips for audiobooks whenever the metadata contains an author, narrator, or chapter title, provided that you:
Specify audioBook as the itemType.
Include duration in trackMetadata for each chapter.
See Saving and Resuming Play Position
for details.
Related
While i am sending Add Itinerary Remark in sabre FLIGHT API Request it's through Error (Business logic Error). Please Suggest me
<?xml version='1.0' encoding='utf-8'?>
<soap-env:Envelope xmlns:soap-env='http://schemas.xmlsoap.org/soap/envelope/'>
<soap-env:Header>
<eb:MessageHeader xmlns:eb='http://www.ebxml.org/namespaces/messageHeader'>
<eb:From>
<eb:PartyId eb:type='urn:x12.org.IO5:01'>sabre#example.com</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type='urn:x12.org.IO5:01'>webservices.sabre.com</eb:PartyId>
</eb:To>
<eb:ConversationId>1500986572sabre#example.com</eb:ConversationId>
<eb:Service eb:type='OTA'>Air</eb:Service>
<eb:Action>AddRemarkLLSRQ</eb:Action>
<eb:CPAID>IPCC</eb:CPAID>
<eb:MessageData>
<eb:MessageId>mid:1500986572sabre#example.com</eb:MessageId>
<eb:Timestamp>2017-07-25T12-42-52Z</eb:Timestamp>
<eb:TimeToLive>2017-07-25T12-42-52Z</eb:TimeToLive>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse='http://schemas.xmlsoap.org/ws/2002/12/secext'>
<wsse:UsernameToken>
<wsse:Username>USER</wsse:Username>
<wsse:Password>PASS</wsse:Password>
<Organization>IPCC</Organization>
<Domain>Default</Domain>
</wsse:UsernameToken>
<wsse:BinarySecurityToken>Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTC!ICESMSLB\/CRT.LB!-3250684970584119419!1379810!0</wsse:BinarySecurityToken>
</wsse:Security>
</soap-env:Header>
<soap-env:Body>
<AddRemarkRQ xmlns='http://webservices.sabre.com/sabreXML/2011/10' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' ReturnHostCommand='false' Version='2.1.0'>
<RemarkInfo>
<FOP_Remark>
<CC_Info>
<PaymentCard Code="VI" ExpireDate="2022-3" Number="4111111111111111" />
</CC_Info>
</FOP_Remark>
<Remark Type="General">
<Text>Swadesh Dash,nandan#gmail.com,8989852356</Text>
</Remark>
<Remark Type="Client Address">
<Text>Swadesh Dash,8989852356, nandan#gmail.com</Text>
</Remark>
</RemarkInfo>
</AddRemarkRQ>
</soap-env:Body>
</soap-env:Envelope>
Would help knowing what is the business error you got, but I see:
ExpireDate="2022-3" - I presume that it does not take 3 as month, it should be 03
In the other 2 remarks there # signs which likely are characters not supported in remarks.
For an improved response, please post the business error.
I can get only one possible reason and that is "Special Characters not allowed by Sabre"
And you have used # in remarks.
Special Characters which are not allowed are #,$,%,&,(,),[,],{,},<,>,?,=,+,;,Σ,_,' etc.
I’m trying to implement a SMAPI service, but am running into some issues.
I’ve built a “fake” service which gives hard-coded responses for these endpoints:
getMediaURI
getLastUpdate
getMediaMetadata
getMetadata
getExtendedMetadata
getSessionId
I've followed the instructions for adding a custom service, keeping all capabilities unchecked.
I see my new test service listed on my Sonos iPhone app, but when I select it, I get a screen saying "Unable to browse music".
I'm not really sure how to debug what's happening, so feel like I'm stabbing in the dark. I don't want to make changes speculatively that may not be anything to do with the problem - that seems like a recipe for tons of wasted effort.
Is there any way of seeing the errors the Sonos Controller app (client) is having? I've checked out the http://[device ip]:1400/support/aggregate logs, but don't see any mention of my service's domain name, or see anything that seems relevant.
I know that (at least some) requests are hitting my service, specifically call to getLastUpdate and getMetadata. Here's the output of the logs:
2016-02-23T18:55:24.316373+00:00 app[web.1]: Started POST "/soap/action" for 213.86.218.202 at 2016-02-23 18:55:24 +0000
2016-02-23T18:55:24.316485+00:00 app[web.1]: Started POST "/soap/action" for 213.86.218.202 at 2016-02-23 18:55:24 +0000
2016-02-23T18:55:24.431603+00:00 app[web.1]: Processing by SoapController#get_last_update as HTML
2016-02-23T18:55:24.431611+00:00 app[web.1]: Processing by SoapController#get_last_update as HTML
2016-02-23T18:55:24.438452+00:00 app[web.1]: params.inspect: {}
2016-02-23T18:55:24.438458+00:00 app[web.1]: params.inspect: {}
2016-02-23T18:55:24.447855+00:00 app[web.1]: Rendered vendor/bundle/ruby/2.2.0/gems/wash_out-0.10.0/app/views/wash_out/document/response.builder (7.6ms)
2016-02-23T18:55:24.447907+00:00 app[web.1]: Rendered vendor/bundle/ruby/2.2.0/gems/wash_out-0.10.0/app/views/wash_out/document/response.builder (7.6ms)
2016-02-23T18:55:24.448279+00:00 app[web.1]: Completed 200 OK in 17ms (Views: 9.5ms | ActiveRecord: 0.0ms)
2016-02-23T18:55:24.457801+00:00 app[web.1]: Started POST "/soap/action" for 213.86.218.202 at 2016-02-23 18:55:24 +0000
2016-02-23T18:55:24.448327+00:00 app[web.1]: Completed 200 OK in 17ms (Views: 9.5ms | ActiveRecord: 0.0ms)
2016-02-23T18:55:24.464365+00:00 app[web.1]: Processing by SoapController#get_metadata as HTML
2016-02-23T18:55:24.457861+00:00 app[web.1]: Started POST "/soap/action" for 213.86.218.202 at 2016-02-23 18:55:24 +0000
2016-02-23T18:55:24.464428+00:00 app[web.1]: Processing by SoapController#get_metadata as HTML
2016-02-23T18:55:24.465101+00:00 app[web.1]: params.inspect: {"id"=>"root", "index"=>0, "count"=>100}
2016-02-23T18:55:24.465154+00:00 app[web.1]: params.inspect: {"id"=>"root", "index"=>0, "count"=>100}
2016-02-23T18:55:24.472056+00:00 app[web.1]: Rendered vendor/bundle/ruby/2.2.0/gems/wash_out-0.10.0/app/views/wash_out/document/response.builder (3.4ms)
2016-02-23T18:55:24.472049+00:00 app[web.1]: Rendered vendor/bundle/ruby/2.2.0/gems/wash_out-0.10.0/app/views/wash_out/document/response.builder (3.4ms)
2016-02-23T18:55:24.472248+00:00 app[web.1]: Completed 200 OK in 8ms (Views: 6.9ms | ActiveRecord: 0.0ms)
2016-02-23T18:55:24.472251+00:00 app[web.1]: Completed 200 OK in 8ms (Views: 6.9ms | ActiveRecord: 0.0ms)
Any help would be hugely appreciated!
UPDATE
Here's the output from making requests against my fake service with SoapUI:
getLastUpdate
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.sonos.com/Services/1.1">
<soap:Body>
<tns:getLastUpdateResponse>
<getLastUpdateResult>
<catalog>Catalog last updated 2016-02-18 11:52:30</catalog>
<favorites>User: Rob last updated favorites 2016-02-18 12:01:00</favorites>
<pollInterval>30</pollInterval>
</getLastUpdateResult>
</tns:getLastUpdateResponse>
</soap:Body>
</soap:Envelope>
getSessionId
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.sonos.com/Services/1.1">
<soap:Body>
<tns:getSessionIdResponse>
<getSessionIdResult>user0001</getSessionIdResult>
</tns:getSessionIdResponse>
</soap:Body>
</soap:Envelope>
getMetadata
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.sonos.com/Services/1.1">
<soap:Body>
<tns:getMetadataResponse>
<getMetadataResult>
<index>0</index>
<count>2</count>
<total>2</total>
<mediaMetadata>
<id>some_id_1</id>
<title>Title 1</title>
<mimeType>audio/mp4</mimeType>
<itemType>track</itemType>
<displayType>List</displayType>
<summary>Summary text 1. Summary text 1. Summary text 1.</summary>
<trackMetadata>
<artistId/>
<artist/>
<composerId/>
<composer/>
<albumId/>
<album/>
<albumArtURI/>
<albumArtistId/>
<albumArtist/>
<genreId/>
<genre/>
<duration/>
<canPlay/>
<canSkip/>
<canAddToFavorites/>
<rating/>
<trackNumber/>
</trackMetadata>
<streamMetadata></streamMetadata>
</mediaMetadata>
<mediaMetadata>
<id>some_id_2</id>
<title>Title 2</title>
<mimeType>audio/mp4</mimeType>
<itemType>track</itemType>
<displayType>List</displayType>
<summary>Summary text 2. Summary text 2. Summary text 2.</summary>
<trackMetadata>
<artistId/>
<artist/>
<composerId/>
<composer/>
<albumId/>
<album/>
<albumArtURI/>
<albumArtistId/>
<albumArtist/>
<genreId/>
<genre/>
<duration/>
<canPlay/>
<canSkip/>
<canAddToFavorites/>
<rating/>
<trackNumber/>
</trackMetadata>
<streamMetadata></streamMetadata>
</mediaMetadata>
</getMetadataResult>
</tns:getMetadataResponse>
</soap:Body>
</soap:Envelope>
getExtendedMetadata
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.sonos.com/Services/1.1">
<soap:Body>
<tns:getExtendedMetadataResponse>
<getExtendedMetadataResult>
<mediaMetadata>
<id>some_id_1</id>
<title>Title 1</title>
<mimeType>audio/mp4</mimeType>
<itemType>track</itemType>
<displayType>List</displayType>
<summary>Summary text 1. Summary text 1. Summary text 1.</summary>
<trackMetadata>
<artistId/>
<artist/>
<composerId/>
<composer/>
<albumId/>
<album/>
<albumArtURI/>
<albumArtistId/>
<albumArtist/>
<genreId/>
<genre/>
<duration/>
<canPlay/>
<canSkip/>
<canAddToFavorites/>
<rating/>
<trackNumber/>
</trackMetadata>
<streamMetadata></streamMetadata>
</mediaMetadata>
</getExtendedMetadataResult>
</tns:getExtendedMetadataResponse>
</soap:Body>
</soap:Envelope>
getMediaMetadata
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.sonos.com/Services/1.1">
<soap:Body>
<tns:getMediaMetadataResponse>
<getMediaMetadataResult>
<id/>
<title>Fake Track Title</title>
<mimeType>audio/mp4</mimeType>
<itemType>track</itemType>
<displayType/>
<summary/>
<trackMetadata>
<artistId>artist:12345</artistId>
<artist>Bach</artist>
<composerId/>
<composer/>
<albumId/>
<album/>
<albumArtURI>https://sonos.therocketfuel.com/images/istockphoto_1945235_satisfaction.jpg</albumArtURI>
<albumArtistId/>
<albumArtist/>
<genreId/>
<genre>Classical</genre>
<duration>459</duration>
<canPlay>true</canPlay>
<canSkip>true</canSkip>
<canAddToFavorites>false</canAddToFavorites>
<rating/>
<trackNumber/>
</trackMetadata>
<streamMetadata></streamMetadata>
</getMediaMetadataResult>
</tns:getMediaMetadataResponse>
</soap:Body>
</soap:Envelope>
getMediaURI
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.sonos.com/Services/1.1">
<soap:Body>
<tns:getMediaURIResponse>
<getMediaURIResult>https://sonos.therocketfuel.com/audio/960bpm.m4a</getMediaURIResult>
</tns:getMediaURIResponse>
</soap:Body>
</soap:Envelope>
Have you tried using SoapUI, adding your endpoint and hitting it directly to see what you are getting back?
The solution
I finally figured it out, and essentially my service was returning valid XML, but that wasn't correct for the WSDL schema.
I debugged this by using SoapUI as follows:
Create a new SOAP project
Project name: whatever you like
Initial WSDL: points to where your service serves up the WSDL
Check both "Create Requests" and "Create TestSuite"
Ctrl-click (right-click) on the TestSteps folder and click to "Add Step", then select "SOAP Request"
Give it any name you like (I used e.g. actionName_validate)
Choose the SOAP operation/action you want to validate
Make sure you tick the checkbox for "Add Schema Assertion (adds validation that response complies with its schema)" and click OK
Double-click your newly created test step from the list on the left and run it (click the green play button at the top left)
If your service's response complies with the WSDL, you'll see a green circle at the bottom left where it says "Assertions". If not, it will be red and it will give you a complete list of everything that's wrong with your response.
Fix any problems with your schema one by one until it's green
Extra details if you're using Ruby
Also, here's some more details that may help someone in this situation, specifically if you're building your service in Ruby...
The tooling around SOAP services in Ruby is not as good as in Java (or even PHP). I was using the wash_out gem which, whilst good for a completely new SOAP service, isn't expressive enough to allow you to define type mappings etc that match the official Sonos WSDL. I also couldn't manage to get it to generate the correct XML responses (it missed off a key xmlns attribute needed, or wouldn't namespace all the elements.)
I got round this by manually serving up the XML responses with templates as this was the simplest approach at first. You can use .xml.erb templates or alternatively use xml builder syntax with .xml.builder templates. Really though, you can generate the XML any way you want e.g. to_xml or some other presenter type library.
For the WSDL, I switched to using the official Sonos SMAPI WSDL, and just changing the service address right at the bottom to point to where this modified WSDL is served up by my service.
I'm having problems with the Sonos api for Extendedmetadata, please see below output. The art and extra information is not shown for track info.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<getExtendedMetadataResponse xmlns="http://www.sonos.com/Services/1.1">
<getExtendedMetadataResult>
<mediaMetadata>
<id>track-28938</id>
<itemType>track</itemType>
<mimeType>audio/mp3</mimeType>
<trackMetadata>
<artistId>artist-4619</artistId>
<artist>Jelte Veenhoven</artist>
<albumid>album-916</albumid>
<album>From Olivet to Calvary</album>
<duration>397</duration>
<albumArtURI>http://<server ip>/functions/load_albumart.php?album_id=916&size=200</albumArtURI>
<canSkip>true</canSkip>
<canAddToFavorites>true</canAddToFavorites>
</trackMetadata>
</mediaMetadata>
</getExtendedMetadataResult>
</getExtendedMetadataResponse>
</soap:Body>
</soap:Envelope>
It seems I missed the title tag in mediaMetadata, which was not mentioned in any Sonos examples and Manuals.....
:-)
First, trackMetadata doesn't have any Extra field. Check http://musicpartners.sonos.com/node/83 for detailed information.
Second, what do you mean by art information?
Keep in mind that non-mandatory fields specified in the wsdl file that are not generated in your python/php code won't appear in the SOAP response.
You need to provide more information about your code. We can't just guess.
I have placed test orders in the sandbox eBay account.
I am not able to get the orders listing from the GetOrders API call.
It retruns the success message but no orders are fetched.
Below are the API call details :
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns="urn:ebay:apis:eBLBaseComponents" ><soap:Header><RequesterCredentials><eBayAuthToken>...</eBayAuthToken><Credentials><AppId>Clarion89-2b36-4da6-b073-00dafbcff12</AppId><DevId>f79169c1-f95b-4d23-9fe2-547504ffb827</DevId><AuthCert>...</AuthCert></Credentials></RequesterCredentials></soap:Header><soap:Body><GetOrdersRequest><DetailLevel>ReturnAll</DetailLevel><Version>527</Version><CreateTimeFrom>2012-04-02T09:52:27.000Z</CreateTimeFrom><CreateTimeTo>2012-05-03T09:52:27.000Z</CreateTimeTo><OrderRole>Seller</OrderRole><OrderStatus>Active</OrderStatus><ListingType>FixedPriceItem</ListingType></GetOrdersRequest></soap:Body></soap:Envelope>
Response returned as below
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<GetOrdersResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2012-05-03T09:54:03.650Z</Timestamp>
<Ack>Success</Ack>
<Version>771</Version>
<Build>E771_CORE_BUNDLED_14795207_R1</Build>
<PaginationResult>
<TotalNumberOfPages>0</TotalNumberOfPages>
<TotalNumberOfEntries>0</TotalNumberOfEntries>
</PaginationResult>
<HasMoreOrders>false</HasMoreOrders>
<OrderArray/>
<OrdersPerPage>100</OrdersPerPage>
<PageNumber>1</PageNumber>
<ReturnedOrderCountActual>0</ReturnedOrderCountActual>
</GetOrdersResponse>
</soapenv:Body>
</soapenv:Envelope>
Please tell me why i am not getting order details
first of all i would use an higher version (i'm actually using 771 as compatibility level)
I used to have a similar problem at the very benning when i started coded for api, then i switched CreatedTime filter to NumberOfDays wich are the days to look back from today.
What language are you using to make the call?
Check your request parameters against your orders that are stored on ebay. It may happen that there are no orders matching the parameters you are entering in your call. Try entering the most basic request parameters like
<?xml version="1.0" encoding="utf-8"?>
<GetOrdersRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>[your authentication token]</eBayAuthToken>
</RequesterCredentials>
<CreateTimeFrom>2012-05-10T00:00:00.000Z</CreateTimeFrom>
<CreateTimeTo>2012-05-15T00:00:00.000Z</CreateTimeTo>
</GetOrdersRequest>
You can enter the dates as per your requirement but make sure you use the date format accepted by ebay.
I need some PUBLIC sevice, similar service like LInkedin API for companies where you can get company info in xml version.
The service has to provide Company name,email domain,description,location ...etc
Any suggestions?
Google Places? https://developers.google.com/maps/documentation/places/
<?xml version="1.0" encoding="UTF-8"?>
<PlaceDetailsResponse>
<status>OK</status>
<result>
<name>Google Sydney</name>
<vicinity>5/48 Pirrama Road, Pyrmont</vicinity>
<type>store</type>
<type>establishment</type>
<formatted_phone_number>(02) 9374 4000</formatted_phone_number>
<formatted_address>5/48 Pirrama Road, Pyrmont NSW, Australia</formatted_address>
<address_component>
...
</address_component>
<geometry>
<location>
<lat>-33.8669710</lat>
<lng>151.1958750</lng>
</location>
</geometry>
<rating>4.6</rating>
<url>http://maps.google.com/maps/place?cid=10281119596374313554</url>
<icon>http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png</icon>
<reference>CnRlAAAAmEVjMMmgnwJelvu3C6FBY7IbBnTFo79cG4wFECOAZBspmGrr5XLU8PUlbfP6pyBSEFtq7qHJcauhj-VbBvd-p-CK9R5PdKr17WI0cqJ91gIXVgMIpMl8UviFq_xSzxdE_g7dL1QwsvC9_jriAVkbxBIQRIYHAi7IRd8oePOmHImOWRoUmObrEH8JZRUVv6CRSsJz9OA20wo</reference>
<id>4f89212bf76dde31f092cfc14d7506555d85b5c7</id>
<international_phone_number>+61 2 9374 4000</international_phone_number>
<website>http://www.google.com.au/</website>
</result>
</PlaceDetailsResponse>