Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mailchimp API PHP:500错误_Php_Mailchimp_Mailchimp Api V3.0 - Fatal编程技术网

Mailchimp API PHP:500错误

Mailchimp API PHP:500错误,php,mailchimp,mailchimp-api-v3.0,Php,Mailchimp,Mailchimp Api V3.0,我正在尝试编写php代码,用给定的电子邮件取消订阅/订阅用户 我发现这个教程: 但我还是有错误。我认为该文件中存在一个问题: 需要'mailchimp/mailchimp.php' 在错误日志中什么都没有 有谁能给我一些建议,如何排除故障或以不同的方式解决问题?我是一个几乎不懂PHP的初学者 谢谢我终于用这个简单的代码解决了它,不需要其他库了 <?php function rudr_mailchimp_subscriber_status( $email, $status, $list_

我正在尝试编写php代码,用给定的电子邮件取消订阅/订阅用户

我发现这个教程:

但我还是有错误。我认为该文件中存在一个问题:

需要'mailchimp/mailchimp.php'

在错误日志中什么都没有

有谁能给我一些建议,如何排除故障或以不同的方式解决问题?我是一个几乎不懂PHP的初学者


谢谢

我终于用这个简单的代码解决了它,不需要其他库了

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


?>

您实际得到的错误是什么?打开php的错误报告。加载资源失败:服务器以500的状态响应。谢谢你们的快速回复,伙计们。嘿,如果不清楚为什么你的方法有效,merge_fields键看起来像是merge_vars,这也给我造成了500个错误。。。我无法证明每一句话中的任何内容,但我怀疑在MC中的某个时刻发生了变化,他们只是决定返回一个无用的500错误,而不是我们可以使用的东西。我们在几年前就有了这个系统,然后突然它坏了。我真的很怀疑一些流氓程序员只是进去改变了一个属性。