2017-10-06 4 views
0

Ich versuche PHP-Code zu machen, der Benutzer mit der angegebenen E-Mail abmelden/abonnieren wird.Mailchimp API PHP: 500 Fehler

fand ich dieses Tutorial: http://www.sutanaryan.com/2016/10/mailchimp-api-subscribe-or-unsubscribe-user-php-script/

Aber ich bin immer noch Fehler. Ich denke, dass es ein Problem in dieser Datei gibt:

require ('mailchimp/Mailchimp.php');

Im Fehlerprotokoll gibt es nichts.

Kann mir jemand Ratschläge geben, wie ich es beheben oder auf andere Weise lösen kann? Ich bin Anfänger mit fast keinem Wissen über PHP.

Danke

+0

Welchen Fehler bekommen Sie eigentlich? –

+0

Fehlerbericht für PHP aktivieren. https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display –

+0

Fehler beim Laden der Ressource: Der Server reagierte mit einem Status von 500() – Filip

Antwort

1

ich es durch diesen einfachen Code endlich gelöst wird keine andere Bibliothek benötigt!

<?php 

function rudr_mailchimp_subscriber_status($email, $status, $list_id, $api_key, $merge_fields = array('FNAME' => '','LNAME' => '')){ 
    $data = array(
     'apikey'  => $api_key, 
      'email_address' => $email, 
     'status'  => $status, 
     'merge_fields' => $merge_fields 
    ); 
    $mch_api = curl_init(); // initialize cURL connection 

    curl_setopt($mch_api, CURLOPT_URL, 'https://' . substr($api_key,strpos($api_key,'-')+1) . '.api.mailchimp.com/3.0/lists/' . $list_id . '/members/' . md5(strtolower($data['email_address']))); 
    curl_setopt($mch_api, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Basic '.base64_encode('user:'.$api_key))); 
    curl_setopt($mch_api, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0'); 
    curl_setopt($mch_api, CURLOPT_RETURNTRANSFER, true); // return the API response 
    curl_setopt($mch_api, CURLOPT_CUSTOMREQUEST, 'PUT'); // method PUT 
    curl_setopt($mch_api, CURLOPT_TIMEOUT, 10); 
    curl_setopt($mch_api, CURLOPT_POST, true); 
    curl_setopt($mch_api, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($mch_api, CURLOPT_POSTFIELDS, json_encode($data)); // send data in json 

    $result = curl_exec($mch_api); 
    return $result; 
} 

$email = 'XXXXXXXXXXXXXXXX'; 
$status = 'subscribed'; // "subscribed" or "unsubscribed" or "cleaned" or "pending" 
$list_id = 'XXXXXXXXXX'; // where to get it read above 
$api_key = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'; // where to get it read above 
$merge_fields = array('FNAME' => 'Misha','LNAME' => 'Rudrastyh'); 

rudr_mailchimp_subscriber_status($email, $status, $list_id, $api_key, $merge_fields); 


?> 
+0

Hey, falls es nicht klar war, warum deine Methode funktioniert, sieht die "merge_fields" -Schlüssel so aus, als wäre sie "merge_vars", was auch für mich einen Fehler von 500 verursachte ... Ich kann nichts beweisen, außer ich Ich vermute, dass sich das irgendwann in MC geändert hat und sie entscheiden sich einfach dafür, einen nutzlosen 500 Fehler anstelle von etwas, das wir verwenden können, zurückzugeben. Das hatten wir vor Jahren integriert, dann ist es plötzlich kaputt gegangen. Ich bezweifle ernsthaft, dass irgendein Schurkenprogrammierer einfach reingegangen ist und diese eine Eigenschaft geändert hat. –