Cloudflare API - создайте запись DNS (NS), используя CURL PHP - PullRequest
0 голосов
/ 29 января 2019

Я работаю над добавлением записей в мою зону, используя curl (PHP);Я хочу добавить test.gen.ng в качестве записи DNS с серверами имен (ns1.test.com, ns2.test.com, ns3.test.com, ns4.test.com).Я могу добавить записи A, записи CNAME и другие с кодом внизу, но не записями NS.

{"success": false, "errors": [{"code": 1004, "message": "Ошибка проверки DNS", "error_chain": [{"code": 9102, "message": "содержимое должно быть строкой."}]}], "messages": [], "result": null}

У меня есть ошибки, как показано выше;отправив содержимое ниже.

<?php
/* Cloudflare.com | APİv4 | Api Ayarları */
$apikey = '61543253246426e7147'; // Cloudflare Global API
$email = 'rose@gen.ng'; // Cloudflare Email Adress
$domain = 'gen.ng';  // zone_name // Cloudflare Domain Name
$zoneid = 'a30b057777777777777777dadd'; // zone_id // Cloudflare Domain Zone ID
$dnsadgeldi = 'test';
$dnsnameserver1 = 'ns1.test.com';
$dnsnameserver2 = 'ns2.test.com';
$dnsnameserver3 = 'ns3.test.com';
$dnsnameserver4 = 'ns4.test.com';
$ttl = 120;


// A-record oluşturur DNS sistemi için.
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/".$zoneid."/dns_records");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'X-Auth-Email: '.$email.'',
        'X-Auth-Key: '.$apikey.'',
        'Cache-Control: no-cache',
        // 'Content-Type: multipart/form-data; charset=utf-8',
        'Content-Type:application/json',
        'purge_everything: true'

        ));

        // -d curl parametresi.
        $data = array(

            'type' => 'NS',
            'name' => ''.$dnsadgeldi.'',

            'content' => Array
            (
                    '0' => $dnsnameserver1,
                    '1' => $dnsnameserver2,
                    '2' => $dnsnameserver3,
                    '3' => $dnsnameserver4

            ),

            'zone_name' => ''.$domain.'',
            'zone_id' => ''.$zoneid.'',
            'proxiable' => 'false',
            'proxied' => false,
            'ttl' => 1
        );

        $data_string = json_encode($data);

        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
        //curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data_string));

        $sonuc = curl_exec($ch);

             // If you want show output remove code slash.
     // print_r($sonuc);

        curl_close($ch);

        echo $sonuc;
...