2016-07-22 6 views
-1

Ich habe Code in ein Plugin für Wordpress geschrieben, dass, wenn der Benutzer die Schaltfläche abschicken ihre Informationen in der WP-Datenbank gespeichert und wird auch an eine Website von Dritten mit ihrer E-Mail-Adresse und Passwort gesendet JSON-Protocalls verwenden.API senden E-Mail und Passwort mit CURL

dies ist der Code, den ich verwende (der „$ bemail“ und $ password sind in der gleichen Datei zu früheren Teilen des Codes beziehen):

$url = "https://api.example.com/v1/logins"; 
$data = array(
    'email'  => $_POST['$bemail'], 
    'password' => $_POST['$password'], 
    ); 
$content = json_encode($data); 
$curl = curl_init($url); 
$apikey = "xxxx"; 
curl_setopt($curl, CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'example.com-Api-Key: ' . $apikey, 
    'Accept: application/json', 
    )); 
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $content); 

$json_response = curl_exec($curl); 

$status = curl_getinfo($curl, CURLINFO_HTTP_CODE); 

ich einen Fehler mit einer Antwort vom 3. erhalten Party Website mit so etwas wie:

„Fehler: E-Mail und Passwort darf nicht leer sein“

, die mir sagt, dass die E-Mail und Passwort wird nicht gesendet werden.

was fehlt mir hier?

Vielen Dank.

+0

Warum leiten Sie die E-Mail-Adresse und das Passwort des Benutzers an Dritte weiter ??? – BeetleJuice

+0

zahlen die Nutzer, um meine WP-Website zu nutzen, verwendet die Website Videos für die Bildung, jedoch, um die Videos zu sehen, müssen die Nutzer ihre E-Mail und Passwort in das Video selbst eingeben, sie bei der Anmeldung verwendet, um den Zugriff zu ermöglichen und zu sehen Video. Für den Moment muss ich ihre E-Mail manuell hochladen und ihnen ein Passwort geben, das ich gemacht habe, damit sie ein Video sehen können. – electricjelly

+0

Ok. Ich habe eine Lösung geschrieben. – BeetleJuice

Antwort

0

der empfangende Server zu sagen JSON zu erwarten, verwenden Sie die Content-Type Header statt Accept:

curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'example.com-Api-Key: ' . $apikey, 
    // remove this line -> 'Accept: application/json', 
    'Content-Type: application/json' 
    )); 
+0

Vielen Dank für Ihre Antwort, nach der Anwendung der Lösung bleibt das Problem gleich, die genaue Antwort lautet: Fehler: Aufruf an URL https://api.example.com/v1/logins fehlgeschlagen mit Status 400, Antwort {"Fehler ": {" Fehler ": {" email ": [" ist ungültig "," kann nicht leer sein "]," password_confirmation ": [" kann nicht leer sein "]," password ": [" can not " blank blank "]}}}, curl_error, curl_errno 0 ------------- Meinst du, das Problem ist, dass mein Code nicht wirklich die Benutzerformularinformationen zieht? – electricjelly

+0

Ich weiß es nicht. Es könnte sein, oder Sie erstellen die Post-Felder nicht, wie die API erwartet. – BeetleJuice

0

Das erste, was ich vorschlagen würde, ist nur unsere PHP-API-Client verwenden, die Sie hier finden: https://github.com/sproutvideo/sproutvideo-php

die Dokumentation für eine Anmeldung zu schaffen ist hier: https://github.com/sproutvideo/sproutvideo-php#create_login

Sie können auch sehen, was in Ihrem Konto anmelden und GOI auf der Serverseite empfangen wird ng zu http://sproutvideo.com/api_history

Wenn Sie weitere Fragen zur Einrichtung mit der API haben, wenden Sie sich bitte direkt an unseren Kundensupport!