为 PHP 重写 Mailgun curl 脚本

Rewrite Mailgun curl script for PHP

mailgun API 文档建议使用以下脚本通过 curl 将用户添加到邮件列表:

curl -s --user 'api:YOUR_API_KEY' \
https://api.mailgun.net/v3/lists/LIST@YOUR_DOMAIN_NAME/members \
-F subscribed=True \
-F address='bar@example.com' \
-F name='Bob Bar' \
-F description='Developer' \
-F vars='{"age": 26}'

我正在尝试重写它以使其与 PHP:

一起使用
$data = json_encode(array(
  "subscribed"  => "True",
  "address" => "bar@example.com",
  "name" => "Bob Bar"
));

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.mailgun.net/v3/lists/LIST@YOUR_DOMAIN_NAME/members');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "api:{YOUR_API_KEY}");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$result = curl_exec($curl);
curl_close($curl);
print_r($result);

我显然正在用适当的字符串替换 https://api.mailgun.net/v3/lists/LIST@YOUR_DOMAIN_NAME/membersYOUR_API_KEY,但是它失败了。谁能看出我哪里出错了?

非常感谢。

使用以下代码解决:

$data = array(
  "subscribed"  => "True",
  "address" => "bar@example.com",
  "name" => "Bob Bar"
);

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.mailgun.net/v3/lists/LIST@YOUR_DOMAIN_NAME/members');
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($curl, CURLOPT_USERPWD, "api:YOUR_API_KEY");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

$result = curl_exec($curl);
curl_close($curl);
print_r($result);

希望这对某人有所帮助。