Hinzufügen von Abonnenten zu einer Liste mithilfe der Mailchimp-API v3

Ich versuche, Benutzer zu einer Liste hinzuzufügen, die ich in Mailchimp erstellt habe, aber ich kann nirgendwo Codebeispiele finden. Ich habe versucht herauszufinden, wie man die API verwendet, aber ich bin in hohem Maße eine Person, die ein Beispiel ansieht und lernt.

Ich habe versucht, Version 2 der API zu verwenden, aber nichts scheint zu funktionieren, obwohl ich mit Beispielen aus dem Internet gearbeitet habe. Mailchimp sagt Folgendes über frühere Versionen ihrer API auf ihrer Website:

Versions 2.0 und früher sind veraltet. Für diese Versionen ist nur eine minimale Unterstützung (Fehlerkorrekturen, Sicherheitspatches) verfügbar.

UPDATE 1: Ich habe weitere Nachforschungen angestellt, die auf TooMuchPetes @ basiereAntworte bezüglich des Links zum Verwalten von Abonnenten und zum Ändern von Code, den ich gefunden habeHie, aber es wird nicht funktionieren, weil die Funktionhttp_build_query () behandelt keine verschachtelten Arrays. Ich bin nicht sicher, wie ich mit dem 'merge_fields'-Teil des Hinzufügens eines Abonnenten umgehen soll. Mein aktueller Code ist unten:

$postdata = http_build_query(
                    array(
                        'apikey'        => $apikey,
                        'email_address' => $email,
                        'status'        => 'subscribed',
                        'merge_fields'  => array(
                            'FNAME' => $name
                        )
                    )
                );

                $opts = array('http' =>
                    array(
                        'method'  => 'POST',
                        'header'  => 'Content-type: application/x-www-form-urlencoded',
                        'content' => $postdata
                    )
                );

                $context  = stream_context_create($opts);

                $result = file_get_contents('https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/', false, $context);

                var_dump($result);
                die('Mailchimp executed');

UPDATE 2: Ich habe jetzt auf Curl zurückgegriffen und es ist mir gelungen, etwas fast zum Laufen zu bringen. Die Daten werden an Mailchimp weitergeleitet, aber ich erhalte die Fehlermeldung "Ihre Anfrage enthielt keinen API-Schlüssel." Ich schätze, ich muss mich wie erwähnt authentifizierenHie. Ich habe versucht, es dem http-Header hinzuzufügen, was nicht funktioniert hat. Siehe meinen Code unten:

$apikey = '<api_key>';
                $auth = base64_encode( 'user:'.$apikey );

                $data = array(
                    'apikey'        => $apikey,
                    'email_address' => $email,
                    'status'        => 'subscribed',
                    'merge_fields'  => array(
                        'FNAME' => $name
                    )
                );
                $json_data = json_encode($data);

                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, 'https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/');
                curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json/r/n
                                                            Authorization: Basic '.$auth));
                curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_TIMEOUT, 10);
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);                                                                                                                  

                $result = curl_exec($ch);

                var_dump($result);
                die('Mailchimp executed');

Antworten auf die Frage(12)

Ihre Antwort auf die Frage