Mailchimp API PHP:500 错误

Posted

技术标签:

【中文标题】Mailchimp API PHP:500 错误【英文标题】:Mailchimp API PHP: 500 Error 【发布时间】:2018-03-18 04:01:25 【问题描述】:

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

我找到了这个教程: http://www.sutanaryan.com/2016/10/mailchimp-api-subscribe-or-unsubscribe-user-php-script/

但我仍然遇到错误。我认为这个文件有问题:

require('mailchimp/Mailchimp.php');

在错误日志中什么都没有。

谁能给我建议如何解决它或以不同的方式解决它?我是初学者,对 PHP 几乎一无所知。

谢谢

【问题讨论】:

您实际上遇到了什么错误? 开启php的错误报告。 ***.com/questions/1053424/… 加载资源失败:服务器响应状态为500() 谢谢你们的快速回复,伙计们。 【参考方案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 );


?>

【讨论】:

嘿,如果不清楚为什么您的方法有效,“merge_fields”键看起来曾经是“merge_vars”,这对我来说也导致了 500 错误......我可以'不能证明任何话,但我怀疑在 MC 中的某个时候发生了变化,他们只是决定返回一个无用的 500 错误,而不是我们可以使用的东西。几年前我们有这个整合,然后突然它坏了。我严重怀疑某些流氓程序员刚刚进入并更改了该属性。

以上是关于Mailchimp API PHP:500 错误的主要内容,如果未能解决你的问题,请参考以下文章

php [mailchimp api] mailchimp php api #mail

Mailchimp PHP Marketing API 传递请求参数

php Api mailchimp

将查询参数添加到 PHP 的 Mailchimp API 请求

如何使用 PHP 列表活动在 Mailchimp Marketing API 中设置计数

通过 Curl (Mailchimp API) 发布 PHP 会话