Hallo,
ich stehe nun vor folgendem Problem:
Ich habe bei Alfahosting das Name 500 Packet gemietet. Nun möchte ich über die API meine Domain und DNS Einträge verwalten.
Ich bin kein newbe in PHP und schon recht erfahren. Doch leider stoße ich hier an meine Grenzen, was wohl auch daran liegt dasich ganze ganze Prinzip noch garnicht nachvollziehen konnte.
Ich konnte bereits ein kleines Code Fragment erstellen. Aber hier kommt nichtmal ein vernünfitger Aufruf zu stande.
Ich habe viel im Internet nach Erklärungen oder Beispielen gesucht aber leider nichts gefunden was mir das ganze verständlich gemacht hat.
Fehler bei meinem Code ist folgender:
Warning: SoapClient::__soapCall() expects parameter 2 to be array, object given in /var/www/vhosts/meine-domain.de/development/api.meine-domain.de/alfadns.php on line 49
Klar, logisch. Der zweite Parameter muss ein array sein, im Internet hatte ich das nur so gefunden. Ich weiss nicht wie genau das Array aufgebaut werden muss und allgm. habe ich nicht viel Ahnung von soap.
Wenn ich versuche ein leeres Array zu übergeben kommt folgendes:
Fatal error: Uncaught SoapFault exception: [VersionMismatch] Wrong Version in alfadns.php:49 Stack trace: #0 alfadns.php(49): SoapClient->__soapCall('soa.create', Array) #1 alfadns.php(4): AlfaDNS->Execute('soa.create') #2 {main} thrown in alfadns.php on line 49
Mein print_r des Soap Objektes ergibt folgendes:
SoapVar Object ( [enc_type] => 147 [enc_value] => )
Ich wäre echt froh wenn mir jemand helfen kann.
btw. ich habe die PDF Dokumenatation im Anhang des Beitrags gepostet.
[SPOILER=„PHP Example“][PHP]<?php
$alfadns = new AlfaDNS(„“);
$alfadns->Execute(„soa.create“);
class AlfaDNS {
private $url = "";
private $key = "";
private $uid = "";
private $soap = null;
public function __construct ($key, $sandbox = true) {
if($sandbox) {
$this->url = "https://dns-test.alfahosting.de/api/";
} else {
$this->url = "https://dns.alfahosting.de/api/";
}
$this->key = $key;
$this->uid = $this->getRandomString();
}
public function Execute ($command) {
$this->soap = new SoapClient (null,
array(
'location' => $this->url,
'uri' => $this->url,
'trace' => 1,
'use' => SOAP_LITERAL,
'style' => SOAP_DOCUMENT,
));
$data = $command . "-" . $this->uid;
$params = new \SoapVar("<?xml version=”1.0”?><alfadns login=”foobert”><call command=”soa.list” uid=”12345” auth=”3bb35bc2963bbdd16af03467d650c3cd” /><!-- more calls --><call command=”soa.list” subuser=”sub2dns”uid=”12345” auth=”3bb35bc2963bbdd16af03467d650c3cd” /></alfadns>
", XSD_ANYXML);
$hmac = hash_hmac("md5", $data, $this->key);
print_r($params);
$result = $this->soap->__soapCall($command, $params);
}
private function getRandomString () {
return mt_rand(20, 20);
}
}
?>[/PHP][/SPOILER]
Beste Grüße
Der Eiskalteeistee