Seite 1 von 1
Re: Probleme mit api_createRecipient
Verfasst: 01.02.2021, 18:19
von mirko
Habe ich getestet mit nginx taucht der Fehler auf, mit reinem httpd/apache kommt eine ordentliche Fehlermeldung, wird ein Fehler im nusoap sein. Muss ich mal schauen ob es ein Update oder Bugfix für nusoap gibt.
Re: Probleme mit api_createRecipient
Verfasst: 01.02.2021, 14:46
von FUN-DIVER
Wenn ich dein code Beispiel in das PHP script übernehme, meldet es die ID des angelegten Empfängers zurück. Soweit o.k.
Wenn ich aber deine Fehlermeldung reproduzieren will und die beiden letzten Parameter rauslösche, also
Code: Alles auswählen
$params = array("apiMailingListId" => 5,
"apiData" => array(
"u_EMail" => "m.test3@fundiverev.de",
"u_LastName" => "Test3",
"u_FirstName" => "fgfg",
"u_Gender" => "m",
"u_MessengerMSN" => "2021-05-20", #Datum Austritt
"u_MessengerICQ" =>"2019-02-25", #Datum Eintritt
"u_CustomerNo" => 111, #Mitgliedsnummer
"u_UserFieldString1" =>"PROBEMITGLIED", #Mitgliedsstatus
"u_UserFieldString3" =>""), #Mitgliedsstatus add
"apiarrayGroupsIds" => array() #IDs der Gruppenzuordnung
);
verwende, dann kommt bei mir trotzdem der Fehler:

- Error.png (10.9 KiB) 664 mal betrachtet
Re: Probleme mit api_createRecipient
Verfasst: 01.02.2021, 13:59
von mirko
Nein da kommt
Code: Alles auswählen
Fatal error: Uncaught ArgumentCountError: Too few arguments to function api_Recipients::api_createRecipient(), 3 passed in D:\xampp\htdocs\swm\api\nusoap\lib\nusoap.php on line 4105 and exactly 5 expected in D:\xampp\htdocs\swm\api\api_recipients.php:49
Stack trace:
#0 D:\xampp\htdocs\swm\api\nusoap\lib\nusoap.php(4105): api_Recipients->api_createRecipient(5, Array, Array)
#1 D:\xampp\htdocs\swm\api\nusoap\lib\nusoap.php(3736): nusoap_server->invoke_method()
#2 D:\xampp\htdocs\swm\api\api.php(113): nusoap_server->service('<?xml version="...')
#3 {main}
thrown in D:\xampp\htdocs\swm\api\api_recipients.php on line 49
so angeben
Code: Alles auswählen
$params = array("apiMailingListId" => 5,
"apiData" => array(
"u_EMail" => "m.test3@fundiverev.de",
"u_LastName" => "Test3",
"u_FirstName" => "fgfg",
"u_Gender" => "m",
"u_MessengerMSN" => "2021-05-20", #Datum Austritt
"u_MessengerICQ" =>"2019-02-25", #Datum Eintritt
"u_CustomerNo" => 111, #Mitgliedsnummer
"u_UserFieldString1" =>"PROBEMITGLIED", #Mitgliedsstatus
"u_UserFieldString3" =>""), #Mitgliedsstatus add
"apiarrayGroupsIds" => array(), #IDs der Gruppenzuordnung
"apiUseDoubleOptIn" => false,
"apiFormId" => 0
);
Re: Probleme mit api_createRecipient
Verfasst: 01.02.2021, 13:20
von FUN-DIVER
Wenn ich verwende:
$params = array("apiMailingListId" => 5,
"apiData" => array(
"u_EMail" => "m.test3@fundiverev.de",
"u_LastName" => "Test3",
"u_FirstName" => "fgfg",
"u_Gender" => "m",
"u_MessengerMSN" => "2021-05-20", #Datum Austritt
"u_MessengerICQ" =>"2019-02-25", #Datum Eintritt
"u_CustomerNo" => 111, #Mitgliedsnummer
"u_UserFieldString1" =>"PROBEMITGLIED", #Mitgliedsstatus
"u_UserFieldString3" =>""), #Mitgliedsstatus add
"apiarrayGroupsIds" => array()); #IDs der Gruppenzuordnung
$result = $client->call('api_Recipients.api_createRecipient', $params, '', '', false, true);
kommt bei mir die Fehlermeldung
Error
HTTP Error: no data present after HTTP headers
und nicht die von dir angegebene.
Re: Probleme mit api_createRecipient
Verfasst: 01.02.2021, 12:10
von mirko
Es müssen
ALLE Parameter angegeben werden, kein Parameter ist optional. Gibt man Parameter nicht an, gibt es eine Fehlermeldung, die man auswerten muss!!
Beispiel
Code: Alles auswählen
$params = array("apiMailingListId" => 1, "apiData" => array( "u_EMail" => "webmaster@johndoe.com", "u_LastName" => "Doe", "u_FirstName" => "John" ), "apiarrayGroupsIds" => array());
$result = $client->call('api_Recipients.api_createRecipient', $params, '', '', false, true);
Es fehlt "apiUseDoubleOptIn" => false, "apiFormId" => 0, Ergebnis wenn man den Fehler auswertet:
Code: Alles auswählen
Fatal error: Uncaught ArgumentCountError: Too few arguments to function api_Recipients::api_createRecipient(), 3 passed in D:\xampp\htdocs\swm\api\nusoap\lib\nusoap.php on line 4105 and exactly 5 expected in D:\xampp\htdocs\swm\api\api_recipients.php:49
Stack trace:
usw.
Re: Probleme mit api_createRecipient
Verfasst: 01.02.2021, 11:24
von FUN-DIVER
wie ist die Syntaxprüfung für e-Mail Adressen?
Wir haben verwendet:
"u_EMail" => "
stephan-st@gmx.de"
"apiUseDoubleOptIn" => false
"apiFormId" => 0
Was ist daran falsch?
Warum wird bei fehlender "apiUseDoubleOptIn" => false Angabe keine Fehlermeldung zurückgegeben?
Re: Probleme mit api_createRecipient
Verfasst: 01.02.2021, 09:44
von mirko
"u_EMail must contain a valid email address." wird ausgegeben, wenn
apiData[u_EMail] leer/nicht gesetzt ist
oder
die Syntaxprüfung der E-Mail-Adresse ist fehlgeschlagen
apiUseDoubleOptIn und apiFormId muss übergeben werden, sonst gibt es einen Fehler wegen der fehlenden Parameter.
Probleme mit api_createRecipient
Verfasst: 31.01.2021, 22:06
von FUN-DIVER
Wir versuchen derzeit mit einem CRON-Job Script über API Befehle Einträge in unserer Mitglieds-Empfängerliste mit einer externen DB zu synchronisieren.
Der API Aufruf api_Recipients.api_editRecipient zum Aktualisieren eines vorhandenen Eintrags funktioniert ohne Fehler.
Wenn wir jedoch einen neuen Eintrag über api_Recipients.api_createRecipient vornehmen wollen, erhalten wir immer die Fehlermeldung (Faultcode=1 ): "Superwebmailer - Error: u_EMail must contain a valid email address."
Die verwendete e-Mail Adresse ist korrekt und identisch zu der die wir beim Update verwendet haben (die Liste erlaubt doppelte Einträge).
Die Fehlermeldung scheint mir irreführend, denn sie weist nicht auf das eigentliche Problem hin.
Die Zusammenstellung des für die API Befehlsparameter nötigen "apiData" Arrays mit den Feldinhalten ist in beiden Fällen identisch! Ein print_r($params); gibt in beiden Fällen für das apiData Array gleiche Inhalte an.
Auffällig und noch unerklärlicher ist, wenn wir im api_Recipients.api_createRecipient den Parameter "apiUseDoubleOptIn" => false, weglassen, dann wird über $result keine Rückmeldung gegeben, weder die neue ID (bei Erfolg), noch eine Fehlermeldung. Der Datensatz wird nicht eingetragen!
Wir wissen nicht, woran das liegen kann.