2010 . SEPTEMBER

SUN

MON

TUE

WED

THU

FRI

SAT

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Werbeplatz (160x160px)
Wer Interesse hat kann sich bei mir via E-Mail melden.

.tel +49 173 4964512

News  |  About me

February 17, 2010

Akamai API mit PHP abfragen

Voraussetzung: PHP 5.0.0 und cURL 7.10.5 sowie Freischaltung des CP Codes zur Nutzung der API durch Akamai

Bei der Verwendung des HttpContentDeliveryReportService von Akamai stößt man aufgrund der ehr dürftigen Dokumentation relativ schnell an seine Grenzen. Hier nun ein kurzer Abriss wie man mit PHP und cURL eine SOAP Verbindung aufbaut um die API abzufragen.

Den eigentlichen SOAP Request hab ich in einer xml Datei abgelegt. Der Request an sich fragt die CP Codes mit allen informationen ab.









Dies lege ich mit PHP in einem String ab.

$request = file_get_contents(\"xml/getCPCodes.xml\");



Meine index.php ist relativ unspektakulär:

$request = file_get_contents(\"xml/getCPCodes.xml\");

echo $request;

echo \"Akamia API Test\";

// ist curl verfügbar wenn ja dann initialisieren
$curl = $f->initConnection();

// Tweed posten
$html = $f->requestAkamaiAPI($curl, $request);
echo $html;

// close curl
$f->closeCURL($curl);



Die $f ist meine factory die den eigentlichen Request abarbeitet.

class Factory
{
var $user = \"myuser\";
var $pass = \"mypass\";
var $url = \'https://control.akamai.com/nmrws/services/HttpContentDeliveryReportService\';



function initConnection()
{
if($handle = curl_init())
return $handle;
else exit(\"Initialisierung von curl nicht erfolgreich! (checkCURL)\");
}

function requestAkamaiAPI($curl, $request)
{

// URL angeben
curl_setopt($curl, CURLOPT_URL, $this->url);


// Rückgabewerte sollen verwendet werden
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

// SOAP Action header, wird im wsdl file definiert.
curl_setopt ($curl, CURLOPT_HTTPHEADER, array(\'SOAPAction: \"\"\'));

// Authentifizierung
curl_setopt($curl, CURLOPT_USERPWD, \"$this->user:$this->pass\");

// POST Parameter definieren und angeben
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);

// Rückgabe analog zu Listing 4 verarbeiten
$html = json_decode(curl_exec($curl));

return $html;
}

function closeCURL($curl)
{
// cURL schließen
curl_close($curl);
return true;
}

}



Wenn ich noch etwas Zeit finde werde ich mal einen längeren Beitrag dazu schreiben.