У меня небольшая проблема с преобразованием cURL в PHP cURL.
CURL это:
curl -X POST https://api.curated.co/PUBLICATION_KEY/api/v1/email_subscribers -H 'Accept: application/json' -H 'Content-type: application/json' -H 'Authorization: Token token="API_KEY"' -d '{ "email" : "new_subscriber@example.com" }'
Я конвертирую это в:
<?php
$headers = array(
'Accept: application/json',
'Content-type: application/json',
'Authorization: Token token="API_KEY"'
);
$data = array("email" => "new_subscriber@example.com");
$data_string = json_encode($data);
$ch = curl_init('https://api.curated.co/PUBLICATION_KEY/api/v1/email_subscribers');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
?>
Но я не получаю никакого ответа.
Замечания: Я меняю API_KEY
а также PUBLICATION_KEY
с правильными.
Я следую этому руководству: http://support.curated.co/hc/en-us/articles/201753981-Adding-Subscribers-with-the-API
Можете ли вы дать мне знать, если я что-то упустил?
Я бы определенно заменил curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
с curl_setopt($ch, CURLOPT_POST, true);
Если это ничего не меняет, вы также можете добавить curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
на всякий случай в Curated задействовано перенаправление (возможно, у них отдельный слой авторизации, который затем перенаправляет вас к желаемой конечной точке)
Попробуйте это (:
Чтобы преобразовать команду Curl в PHP
https://incarnate.github.io/curl-to-php/
curl_setopt ($ ch, CURLOPT_URL, "https://api.curated.co/PUBLICATION_KEY/api/v1/email_subscribeers"); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_POSTFIELDS, "{\" email \ ": \" new_subscriber@example.com \ "}"); curl_setopt ($ ch, CURLOPT_POST, 1); $ headers = array (); $ headers [] = "Accept: application / json"; $ headers [] = "Content-Type: application / x-www-form-urlencoded"; $ headers [] = "Authorization: Token token = \" API_KEY \ ""; curl_setopt ($ ch, CURLOPT_HTTPHEADER, $ заголовки); $ result = curl_exec ($ ch); if (curl_errno ($ ch)) { echo 'Ошибка:'. curl_error ($ ч); } curl_close ($ ch);