Loopia har släppt ett API som följer XML-RPC-protokollet. Detta är första gången jag använder ett XML-RPC-api, nästan alla web-API:er man stöter på idag är av typen REST. Därför tänkte jag skriva ned en snabb guide till hur man kommer igång med XML-RPC i PHP.
För att komma åt Loopias API så måste du ha ett konto hos Loopia. Om du har det kan du skapa en API-användare under Kontoinställningar > LoopiaAPI.
Vilka metoder som finns i API:t kan du se på https://www.loopia.se/api. Den metod jag tänkte att vi skulle testa är domainIsFree(username,password,domain) som låter oss kontrollera om ett domännamn är ledigt eller upptaget.
XML-RPC är inte inbyggt i PHP som standard så för att skapa en XML-RPC klient måste vi börja med att ladda ned ett bibliotek från phpxmlrpc.sourceforge.net. Ladda ned 3.0.0Beta och packa upp. Filen vi behöver ligger i "lib" katalogen och heter xmlrpc.inc.
include "xmlrpc.inc"; $username = 'användare@loopiaapi'; $password = 'MittHemligaLösenord'; $domain = "kodkodkod.se"; $xmlrpcClient = new xmlrpc_client('RPCSERV','api.loopia.se',443); $xmlrpcMsg = new xmlrpcmsg('domainIsFree', array(new xmlrpcval($username,'string'), new xmlrpcval($password,'string'), new xmlrpcval($domain,'string'))); $xmlrpcResponse = $xmlrpcClient->send($xmlrpcMsg,0,'https'); if (!$xmlrpcResponse->faultCode()) { if ($xmlrpcResponse->value()->scalarVal()=="OK"){ echo "Domänen ".$domain." är ledig"; }else if($xmlrpcResponse->value()->scalarVal()=="DOMAIN_OCCUPIED"){ echo "Domänen ".$domain." är upptagen"; }else{ echo "Ett oväntat fel inträffade"; } }
Koden är förhoppningsvis självförklarande. Vi skapar ett klientobjekt och vi skapar ett xmlrpc-meddelande (ett anrop till domainIsFree) som vi skickar till servern med klienten. Om vi inte får en felkod till svar så kollar vi om svaret är "OK" eller "DOMAIN_OCCUPIED".
Dokumentationen till XML-RPC for PHP hittar du här.
Om du bygger något med Loopias API har du just nu chansen att vinna en iPad.
Jag tänkte bara att tipsa om phpLoopia (http://github.com/ptz0n/phpLoopia) som är en wrapperklass för LoopiaAPI och gör samtliga metoder tillgängliga direkt som funktioner i PHP.
SvaraRaderaLadda ner och prova direkt!
http://github.com/ptz0n/phpLoopia/archives/master
Ah, såg att du skrivit om den på buzz men missade kommentaren här, la till länk i inlägget också :) Snyggt jobbat!
SvaraRaderaVaa? Använder folk "Buzz"?
SvaraRaderaBra tips ang loopia API, ska se om vi kan låta våra medlemmar på http://www.domainz.se importera sina domäner till oss genom API:et :)
MVH Fredrik