2014-03-12 90 views
3

我在mailchimp新手使用API​​調用來mailchimp列表。剛纔我已經創建了帳戶並獲得了API密鑰。我已經通過他們的API添加電子郵件地址列表,但沒有幫助。如何添加電子郵件地址在PHP

我有聯繫表格,當用戶點擊提交按鈕,我想添加用戶的電子郵件ID在我mailchimp數據庫。

我有這個代碼還,但得到104錯誤嘗試..

$apikey = '***********-us3'; 
       $listID = '*******'; 
       $email = "********"; 
       $url = sprintf('https://us2.api.mailchimp.com/2.0/lists/subscribe&apikey=%s&id=%s&email_address=%s&output=json', $apikey, $listID, $email, $_SERVER['REMOTE_ADDR']); 
       $ch = curl_init($url); 
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
       $data = curl_exec($ch); 
       $arr = json_decode($data, true); 
       curl_close($ch); 
     if ($arr == 1) { 
      echo 'Check now your e-mail and confirm your subsciption.'; 
     } else { 
          echo $arr['code']; 
      switch ($arr['code']) { 
       case 214: 
       echo 'You are already subscribed.'; 
       break; 
       // check the MailChimp API for more options 
       default: 
       echo 'Unkown error...'; 
       break;   
      } 
     } 

任何人都可以建議我該如何實現呢?

在此先感謝

回答

5

mailchimp提供在https://bitbucket.org/mailchimp/mailchimp-api-php一個PHP包裝,它勢必使生活一百萬次更容易。

什麼似乎是這裏發生的問題是,你正在做一個GET而不是POST

嘗試

$apikey = '**********-us3'; 
$listID = '******'; 
$email = "**************"; 
$fields = array('apikey' => urlencode($apikey), 'id' => urlencode($listID), 'email_address' => urlencode($email), 'output' => 'json'); 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 
$url = 'https://us2.api.mailchimp.com/2.0/lists/subscribe'; 
$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 
$data = curl_exec($ch); 
$arr = json_decode($data, true); 
curl_close($ch); 
if ($arr == 1) { 
    echo 'Check now your e-mail and confirm your subsciption.'; 
} else { 
        echo $arr['code']; 
    switch ($arr['code']) { 
     case 214: 
     echo 'You are already subscribed.'; 
     break; 
     // check the MailChimp API for more options 
     default: 
     echo 'Unkown error...'; 
     break;   
    } 
} 

讓我知道這是否有幫助。如果沒有,我可以看看我是否可以嘗試自己設置一些東西,以便測試一些代碼。

+0

如何下載上面的包裝?我直接嘗試,但不能。 – Kalpit

+0

https://bitbucket.org/mailchimp/mailchimp-api-php/raw/190cf58000ee4ed47900c78d5d4ef58c4cae0b49/src/Mailchimp.php – Stephan

+0

我已經下載並試圖實現該代碼,但得到500錯誤 – Kalpit

1

還有另一種流行的簡單API https://github.com/drewm/mailchimp-api

use \DrewM\MailChimp\MailChimp; 
$MailChimp = new MailChimp('abc123abc123abc123abc123abc123-us1'); 

$list_id = 'b1234346'; 
$result = $MailChimp->post("lists/$list_id/members", [ 
       'email_address' => '[email protected]', 
       'status'  => 'subscribed', 
      ]); 

print_r($result);