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
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.