Запрос о поставке API-интерфейса Cloudflare («код»: 9020, «сообщение»: «недопустимый тип записи DNS») - PullRequest
0 голосов
/ 31 января 2019

У меня проблема при использовании cloudflare APIv4.Попытка обновить запись DNS и не знаю, почему я получаю следующую ошибку:

{"success": false, "errors": [{"code": 1004, "message": "DNSОшибка проверки "," error_chain ": [{" code ": 9020," message ":" Недопустимый тип записи DNS "}]}]," messages ": []," result ": null}

Вот функция PHP:

function updateCloudflareDNS($zone_id,$dns_id, $updatedata){
 $updatedata = '[{"name":"**.****.com"},{"type":"A"},{"ttl":"1"},{"content":"8.8.8.8"},{"proxied":"true"}]';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/".$zone_id."/dns_records/".$dns_id);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json; charset=utf-8',
    'X-Auth-Email: **********',
    'X-Auth-Key: ***********'
));    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $updatedata);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);    
$response = curl_exec($ch);
curl_close($ch);
return $response;
}

Кроме того, я правильно помещаю тип записи "A", как указано в документации Cloudflare API

Может кто-топомочь мне с этим вопросом?

Спасибо

1 Ответ

0 голосов
/ 31 января 2019

Вы отправляете полезную нагрузку:

[{"name":"**.****.com"},{"type":"A"},{"ttl":"1"},{"content":"8.8.8.8"},{"proxied":"true"}]

Вот что ожидает API :

{"type":"A", "name":"example.com", "content":"127.0.0.1", "ttl":120, "priority":10,"proxied":false}

И вот как вы правильно строите JSON в PHP:

$POST = json_encode(array(
    "type" => "A",
    "name" => "...",
    ...
));
...