2017-09-15 5 views
2

J'utilise le tutoriel suivant pour créer une campagne et envoyer des courriels dans MailChimp en utilisant Php.Mailchimp Erreur: Mauvaise demande - Votre campagne n'est pas prête à envoyer

https://isabelcastillo.com/create-send-mailchimp-campaign-api-3

Mon code pièce sont

require_once('../wp-load.php'); 

    function isa_mailchimp_api_request($endpoint, $type = 'POST', $body = '') 
    { 
    // Configure -------------------------------------- 
    $api_key = 'API KEY HERE'; // Changed API Key here 
    // STOP Configuring ------------------------------- 
    $core_api_endpoint = 'https://<dc>.api.mailchimp.com/3.0/'; 
    list(, $datacenter) = explode('-', $api_key); 
    $core_api_endpoint = str_replace('<dc>', $datacenter, $core_api_endpoint); 

    $url = $core_api_endpoint . $endpoint; 
    //print_r($url); 

    $request_args = array(
     'method'  => $type, 
     'timeout'  => 20, 
     'headers'  => array(
      'Content-Type' => 'application/json', 
      'Authorization' => 'apikey ' . $api_key 
     ) 
    ); 

    if ($body) { 
     $request_args['body'] = json_encode($body); 
    } 

    $request = wp_remote_post($url, $request_args); 
    $response = is_wp_error($request) ? false : json_decode(wp_remote_retrieve_body($request)); 


    echo '<pre>'; 
    print_r($response); 

    return $response; 
    } 



    function isa_create_mailchimp_campaign($list_id, $subject) {  
    $reply_to = '[email protected]'; 
    $from_name = 'NewsLume'; 
    $subject= 'Another new test message 14 17'; 
    $campaign_id = ''; 
    $body = array(
     'recipients' => array('list_id' => $list_id), 
     'type'   => 'regular', 
     'settings'  => array('subject_line' => $subject, 
           'title' => 'a test title NewsLUme', 
           'reply_to'  => $reply_to, 
           'from_name'  => $from_name, 
           'use_conversation'=> false, 
           'to_name'=> 'sajid', 

           'auto_footer'=> false, 
           'inline_css'=> false, 
           'auto_tweet'=> false, 
           'drag_and_drop'=> false 

           ) 
    ); 

    $create_campaign = isa_mailchimp_api_request('campaigns', 'POST', $body); 

    if ($create_campaign) { 
     if (! empty($create_campaign->id) && isset($create_campaign->status) && 'save' == $create_campaign->status) { 
      // The campaign id: 
      $campaign_id = $create_campaign->id; 
     } 
    } 

    return $campaign_id ? $campaign_id : false; 

}  

function isa_set_mail_campaign_content($campaign_id, $template_content ) { 
    $set_content = ''; 
    $set_campaign_content = isa_mailchimp_api_request("campaigns/$campaign_id/content", 'PUT', $template_content); 

    if ($set_campaign_content) { 
     if (! empty($set_campaign_content->html)) { 
      $set_content = true; 
     } 
    }    
    return $set_content ? true : false; 
} 


$list_id='my_list_id_here'; // LIST HERE 

$campaign_id = isa_create_mailchimp_campaign($list_id, $subject); 

if ($campaign_id) { 
    // Set the content for this campaign 
    $template_content = array( 
     'template' => array( 
       // The id of the template to use. 
       'id' => 47615, // INTEGER 
       'sections' => array(      
        'tst_content' => 'THIS IS THE CONTENT BODY OF MY EMAIL MESSAGE.' 
      ) 

     ) 
    ); 
    $set_campaign_content = isa_set_mail_campaign_content($campaign_id, $template_content); 


    if ($set_campaign_content) { 

     $send_campaign = isa_mailchimp_api_request("campaigns/$campaign_id/actions/send", 'POST'); 
     if (empty($send_campaign)) { 
      // Campaign was sent! 
     } elseif(isset($send_campaign->detail)) { 
      $error_detail = $send_campaign->detail; 

     } 

    } 

} 

J'ai mis à jour toutes les valeurs, y compris API KEY, ID de liste, modèle ID etc. mais je reçois des erreurs

est ici erreur objet

stdClass Object ( [type] => http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/ [title] => Bad Request [status] => 400 [detail] => Your Campaign is not ready to send. [instance] => 89dc8734-2611-4f3b-a4f7-d18bd181bded )

J'ai vérifié dans Mail Chimp, les campagnes sont créées là mais elles sont enregistrées en tant que brouillon.

Voici mes journaux API

journaux API peuvent être vus par le lien ci-dessous en cliquant https://drive.google.com/file/d/0BwIWuJmCDI1vNHgtVm9TQm1FMVU/view?usp=drivesdk

Je suis en mesure de créer la campagne, définir un modèle de campagne, mais je ne peux pas envoyer des emails. Mon domaine est également vérifié et authentifié avec Mailchimp en utilisant les directives. Veuillez vérifier et suggérer une solution

Répondre

1

Alors que le message "Votre campagne n'est pas prête à être envoyée" n'est pas très utile, vous pouvez rechercher un message plus détaillé dans MailChimp. Modifiez le brouillon créé par l'API et accédez à l'étape de confirmation finale. Vous verrez une liste de contrôle où la plupart des éléments ont été transmis, mais il y aura également un élément qui explique pourquoi la campagne a échoué.

Lorsque j'ai tenté de répliquer le problème, la campagne n'a pas pu être envoyée, car le texte de l'espace réservé par défaut restait inchangé dans le modèle. Puisque le code que vous avez posté ne définit que le contenu d'un bloc, c'est probablement le même problème que celui que vous avez.

Espérons que cela aide!

+0

Bonjour Joel. Merci pour vos suggestions J'ai contacté Mail chimp et ils m'ont dit la même chose et le problème était avec des modèles d'email que j'utilisais. J'ai supprimé tout le contenu de l'e-mail, puis ajouté un texte factice à vérifier et tout s'est bien passé. Merci de votre aide. –

+0

@OptimumCreative heureux de vous aider! –