greenSand Api

Om op je eigen site je activiteit weer te kunnen geven, hebben we de Greensand API ontwikkeld.  Dit werkt als volgt: Vanuit je eigen site stuur je een GET-request naar http://www.olivinegroup.com/api/status/x, waarbij x staat voor je unieke gebruikersnummer. Als je gebruikersnummer 16 is, stuur je dus een GET-request naar http://www.olivinegroup.com/api/status/16. De server van Greensand stuurt je dan een XML-berichtje terug met de gegevens.

Dit berichtje ziet er bijvoorbeeld zo uit:

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
<user>
    <id>16</id>
    <status>17.13</status>
</user>
</rsp>

Om je activiteit uit dit berichtje te kunnen lezen, hebben we alvast een voorbeeldscriptje gemaakt in PHP. Met de class SimpleXMLElement kun je heel eenvoudig je status uitlezen, zoals uit het onderstaande scriptje blijkt. Nadat het XML-berichtje gelezen is, kun je status opvragen uit de variabele $xml_element->user->status.

<?php

$url = "http://www.greensand.de/api/status/16";
$xml_element = new SimpleXMLElement($url, NULL, TRUE);

$status = $xml_element->attributes()->stat;

if ($status == "ok")
{
    printf("Mijn activiteit is %1.2f%%!", $xml_element->user->status);
}
else
{
    printf("Fout: %s", $xml_element->err->attributes()->msg);
}

?>

Er kan natuurlijk iets misgaan bij het aanroepen van de Greensand API, bijvoorbeeld als je een verkeerd
gebruikersnummer hebt ingevuld. In dat geval zul je een foutberichtje terug krijgen, bijvoorbeeld:

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
    <err code="03" msg="User niet gevonden" />
</rsp>

In ons voorbeeldscriptje worden deze berichten afgevangen met de variabele $xml_element->attributes()->stat.
Als deze "ok" is, dan is alles goed gegaan. Als de status echter "fail" is, dan is er iets misgegaan en
moet je de foutcode lezen voor de oorzaak.

Dit zijn alle mogelijke statussen en foutcodes die je kunt krijgen:

rsp stat="ok"        Alles is goed gegaan. In het berichtje staat je gebruikersnummer en activiteit.

rsp stat="fail"      Er is iets fout gegaan. Kijk naar de foutcode voor de oorzaak.

   01      Ongeldig request. Het request is geen GET-request.
   02      Ongeldige invoer. Er is geen nummer opgegeven.
   03      User niet gevonden. Er is geen gebruiker met het opgegeven gebruikersnummer.