2017-10-06 1 views
0

나는 주어진 이메일로 사용자를 구독 취소/구독 할 PHP 코드를 만들려고합니다. Mailchimp API PHP : 500 오류

나는이 튜토리얼 발견 http://www.sutanaryan.com/2016/10/mailchimp-api-subscribe-or-unsubscribe-user-php-script/

을하지만 난 여전히 오류가 발생하고있다. 이 파일에 문제가 있다고 생각합니다.

require ('mailchimp/Mailchimp.php');

오류 로그에는 아무 것도 없습니다.

아무도 내가 문제를 해결하거나 다른 방식으로 해결하는 방법에 대해 조언 해 줄 수 있습니까? PHP에 대해 거의 알지 못하는 초보자입니다.

는 마침내이 간단한 코드에 의해 그것을 해결

+0

실제로 어떤 오류가 있습니까? –

+0

PHP에 대한 오류보고를 켭니다. https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display –

+0

리소스를로드하지 못했습니다. 서버가 500() 상태로 응답했습니다. – Filip

답변

1

, 다른 라이브러리가 필요하지 않습니다 감사합니다!

<?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

어째서 당신의 방법이 작동하는지 분명하지 않은 경우를 대비하여 "merge_fields"키가 "merge_vars"처럼 사용되어 500 오류가 발생했습니다 ... 나는 말할 것도 없지만 MC의 어느 시점에서 변경된 것으로 의심되며 사용 가능한 무언가 대신 쓸모없는 500 오류를 반환하기로 결정했습니다. 우리는이 통합 된 몇 해 전에 모든 것이 갑자기 파산했습니다. 나는 심각하게도 일부 불량 프로그래머가 들어가서 그 속성 하나를 변경했는지 의심 스럽다. –