Переписать скрипт Mailgun curl для PHP


Документация API mailgun предлагает использовать следующий скрипт для добавления пользователей в список рассылки через curl:

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

Я пытаюсь переписать это так, чтобы оно работало с PHP:

$data = json_encode(array(
  "subscribed"  => "True",
  "address" => "[email protected]",
  "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/members и YOUR_API_KEY соответствующими строками, однако это не удается. Кто-нибудь может понять, где я ошибаюсь?

Большое спасибо.

Author: user2743326, 2016-10-31

1 answers

Решена с использованием следующего кода:

$data = array(
  "subscribed"  => "True",
  "address" => "[email protected]",
  "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);

Надеюсь, это кому-то поможет.

 2
Author: user2743326, 2016-10-31 15:40:58