We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

Probleme beim verwalten von MailLists via API


Lorenzo
18.08.15, 09:51
Hallo,

Ich habe das Problem gelöst, ich hatte einfach nur die falschen Rechte ... (ich habe mir die Rechte für /email/domain und nicht für email/domain/* gegeben)

Danke für die Hilfe.

tomwinter
17.08.15, 13:08
Hallo Lorenzo,

Welche Abfrage möchtest du denn genau machen?

Mit diesen beiden Funktionen sollte eine Abfrage klappen.

PHP-Code:
function ovhApiGetTime () {
    
    
$curl_time curl_init();

    
curl_setopt_array$curl_time, array ( 
        
CURLOPT_RETURNTRANSFER => 1,
        
CURLOPT_URL => 'https://eu.api.ovh.com/1.0/auth/time'
    
));

    
$ovhTime curl_exec$curl_time );

    
curl_close $curl_time );
    
    return 
$ovhTime;
    
}


function 
ovhApiGetMailinglist $name ) {
    
    
$url "https://eu.api.ovh.com/1.0/email/domain/{deine-domain.de}/mailingList/" $name;
    
    
$method "GET";
    
$body "";
    
    
$ovhTime ovhApiGetTime();
    
    
$toSign =  OVH_APP_SECRET '+' OVH_USER_KEY '+' $method '+' $url '+' $body '+' $ovhTime;
 
    
$hash '$1$' sha1$toSign );

    
$curl curl_init();

    
$headers = array();
    
$headers[] = 'X-Ovh-Application:' OVH_APP_KEY;
    
$headers[] = 'X-Ovh-Timestamp:' $ovhTime;
    
$headers[] = 'X-Ovh-Signature:' $hash;
    
$headers[] = 'X-Ovh-Consumer:' OVH_USER_KEY;

    
curl_setopt_array($curl, array(
        
CURLOPT_RETURNTRANSFER => 1,
        
CURLOPT_URL => $url,
        
CURLOPT_HTTPHEADER => $headers
    
));

    
$result curl_exec$curl );
    
    
$result json_decode$resulttrue );

    
curl_close$curl );
    
    return 
$result;
    

Abfragen kannst du dann mit:
PHP-Code:
print_r ovhApiGetMailinglist (  NULL  ) ); //Gibt dir alle Mailinglisten zurück

print_r ovhApiGetMailinglist (  "beispielMailingListe" ) ); //Gibt dir alles über die Mailingliste zurück 

Ich hoffe ich konnte dir helfen.


MfG
Tom

Lorenzo
13.08.15, 09:16
Hallo, ich bin ein blutiger Anfänger im Bereich API und PHP und ich habe eine Frage bezüglich der URL die man benutzen muss um die Daten vom OVH Server zu bekommen.

Ich habe es bis jetzt fertig gebracht dass ich mittels einer GET-Anfrage, das E-Mail-Domain welches ich verwalte abzurufen.

Hierzu benutzt ich die URL https://eu.api.ovh.com/1.0"/email/domain, das ist mir klar.

Um jetzt auf die im Voraus erstellten Mailing Listen zu zugreifen benutze ich folgende URL:

https://eu.api.ovh.com/1.0/email/domain/{mein-domain.com}/mailingList

Dann bekomme ich allerdings folgende Fehlermeldung:

{"errorCode":"NOT_GRANTED_CALL","httpCode":"403 Forbidden","message":"This call has not been granted"}

Ich stelle mir die Frage ob ich mir einfach nur die falschen Rechte gegeben habe oder ob die Schreibweise meiner URL falsch ist?

Hier ist ein Ausschnitt der Funktion die ich für die Abfrage benutze:

PHP-Code:
function _getData (){
    
$Timestamp _getTime();
    
$Path "/email/domain/{mein-domain.com}/mailingList";    
    
$url "https://eu.api.ovh.com/1.0" $Path;
    
$Method "GET";
    
$body "";
    
$toSign OVH_APP_SECRET "+" OVH_CON_KEY "+" $Method "+" $url "+" $body "+" $Timestamp;
    
$Signature "$1$" SHA1($toSign);
    
    
$curl_handle=curl_init();
    
curl_setopt_array ($curl_handle, array(
        
CURLOPT_URL => $url,
        
CURLOPT_CUSTOMREQUEST => $Method,
        
CURLOPT_CONNECTTIMEOUT => 2,
        
CURLOPT_RETURNTRANSFER => 1,
        
CURLOPT_HTTPHEADER => array(
            
'X-Ovh-Application:' OVH_APP_KEY,
            
'X-Ovh-Timestamp:' $Timestamp,
            
'X-Ovh-Signature:' $Signature,
            
'X-Ovh-Consumer:' OVH_CON_KEY
            
)
        )
    );
    
    
$result curl_exec($curl_handle);

    
curl_close($curl_handle);

    return 
$result;    

Schon mal danke für die schnellen Antworten und sorry meinerseits falls es das Thema schon gibt.