Moo.com API – beställ dina egna trycksaker

Personligen så tycker jag att Moo.com är en av de bästa tjänsterna på nätet – det är en on-demand tryckeritjänst där man kan trycka visitkort, gratulationskort, klistermärken mm med sina egna bilder och sin egen text. Bilderna kan man lätt hämta från tex Flickr eller andra fototjänster. När man är klar så trycker Moo din beställning och skickar hem den till dig. Detta fungerar mycket bra (inte minst pga ett fantastiskt användargränssnitt), men visst skulle det vara användbart att kunna att kunna baka in denna on-demand tjänst i sin egen sajt – vilket är precis vad man kan via

Moos API.

Ett något annorlunda API

Deras API är fortfarande i beta, men är redan mycket kraftfullt. APIet fungerar något annorlunda än de flesta andra API, man kan inte göra allt via APIet. Istället så kan man via APIet plugga in sig i Moos beställningsprocess. Vill man definiera exakt vilka bilder och vilken text användarna ska kunna trycka så kan man göra det, och när man skickar all denna information till Moo så kommer användaren direkt till sidan hos Moo där de anger sin address och betalar. Vill man istället ge användarna ett stort antal bilder som de sedan kan välja vilka de ska framkalla så kan man skicka dessa bilder till Moo och låta användarna välja bland dina bilder där. för att sedan gå till betalningssidan på Moo.com.

XML filen

Allt detta görs via att man skapar en XML fil som sedan skickas till Moo. Denna XML fil innehåller data om vilken typ av produkt man vill trycka, vilka bilder som ska tryckas, eventuellt vilken text man ska ha på baksidan av sina trycksaker etc. Låt oss ta en titt på ett exempel:

<?xml version="1.0" encoding="UTF-8"?>
<moo xsi:noNamespaceSchemaLocation="http://www.moo.com/xsd/api_0.7.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <request>
    	<version>0.7</version>
    	<api_key>[DIN_API_NYCKEL]</api_key>
    	<call>build</call>
    	<return_to>http://www.mashup.se</return_to>
    	<fail_to>http://www.mashup.se</fail_to>
    </request>
    <payload>
    	<chooser>
    		<product_type>minicard</product_type>
    		<images>
    			<url>http://[URL TILL FAVORITBILD].jpg</url>
    		</images>
    		<images>
    			<url>http://[URL TILL EN ANNAN FAVORITBILD].jpg</url>
    		</images>
    	</chooser>
    </payload>
</moo>

En liten förklaring…

  • api_key – en unik nyckel som identifierar vem det är som står för anropet, man får en nyckel på moo.com/api/key
  • return_to – en URL till den sida man vill skicka användaren när beställningen är klar
  • fail_to – en URL till den sida man vill skicka användaren till om något går fel
  • chooser – anger att användarna kan välja fritt mellan de 2 bilder som anges i taggarna </li>
  • product_type – vilken typ av trycksak som ska beställas, valen är minicard, notecard, sticker, postcard och greetingcard. På moo.com/products så finns en beskrivning av dessa produkter.
  • images – de bilder som användaren kan välja mellan. Eftersom detta anrop använder chooser så kan avändaren själv välja hur många av var och en av dessa bilder som ska beställas.
  • </ul> Vill du veta mer om vad som kan göras med XML filen så läs [Moos dokumentation](http://www.moo.com/api/documentation.php), där beskrivs bla hur man kan lägga till text på trycksakerna samt hur man kan automatiskt beskära bilderna man skickar till Moo. **Skicka filen till Moo** XML filen kan skickas till Moo på två sätt – antingen via en enkel form POST eller genom att skicka XML filen direkt till MOOs server via din egen backend, dvs mer likt sättet som andra API brukar fungera. Moo tillhandahåller verktyg för att enkelt kunna [verifiera din XML fil](http://www.moo.com/api/validator.php) och för att [testa hur användarupplevelsen ser ut](http://www.moo.com/api/htmlsafe.php) om man använder en viss XML fil. När man ska använda Moos API så behöver man alltså bygga en frontend och/eller backend som bygger upp en XML fil som sedan på något säått skickas till Moo för att slutföra beställningen. Denna frontend kan låta användarna välja bilder och texter, kanske genom att importera dem från en annan tjänst genom denna tjänsts API. Det finns [färdiga kodbibliotek för PHP, Perl och Ruby](http://www.moo.com/api/code.php) som kan användas för snabba upp användadet av Moos API. Ett exempel på lösningar som använder Moos API är [Love Album Art](http://www.lovealbumart.com/). Där laddar man upp sitt iTunes bibliotek och sedan kan man beställa trycksaker med sina favoritartisters skivomslag. **Inga pengar att tjäna… än** För tillfället så har inte Moo.com någon lösning för revenue sharing, så det går inte att tjäna några pengar på att använda deras API. Men när APIet lämnar beta så kommer de att införa en lösning för revenue sharing, så att innehavaren av en API nyckel får del av de pengar Moo.com tjänar på en beställning. Tyvärr så har Moo ännu inte givit en tidsplan för när detta ska ske. Förhoppningsvis så kommer de också att översätta sin sida till svenska i framtiden, det är ju inte alltför användarvänligt att tvinga svenskar att beställa trycksaker och betala för dem på engelska.