Удалено сообщение причина конфиденциальности.
Все поля, кроме «type», должны быть помещены внутрь другого массива, вызывающего «data», попробуйте изменить $ post_data на
$post_data = array(
"type" => "SRV",
"data" => "{"name":"ss2.minefarm.pw","weight":"1","priority":"1","target":"a-ss.minefarm.pw","service":"_minecraft","proto":"_tcp","port":"25565","ttl" :"1"}");
Он должен работать.
Как вы используете zones
В конечной точке документация CloudFlare перечисляет ошибку 1004 как: Invalid or missing zone
, Удостоверьтесь, что запрашиваемый идентификатор зоны соответствует тому, что CloudFlare имеет в /zones
конечная точка.
Кроме того, API CloudFlare требует только следующие поля при добавлении записи DNS: тип, имя, содержимое и, необязательно, TTL. Хотя веб-интерфейс CloudFlare предоставляет интерфейс для генерации значения записи SRV, при использовании API вам необходимо вручную ввести значение для записи, которую вы хотите существовать.
В API этот мастер не существует:
У меня была такая же проблема, но теперь у меня правильный запрос CURL. Я щелкнул все, что мне нужно для моего SRV вместе в браузере FireFox, и заметил POST-запрос к CloudFlare с FireBug.
Смотрите ниже мой скрипт CURL, который работает для меня сейчас
curl -X POST "https://api.cloudflare.com/client/v4/zones/"$zone_id"/dns_records" \
-H "X-Auth-Email: "$auth_mail \
-H "X-Auth-Key: "$auth_key \
-H "Content-Type: application/json" \
--data '{"zone_name":"example.com","zone_id":"'$zone_id'","type":"SRV","name":"_whatyouwant._tcp.example.com.","content":"SRV 0 0 8080 foo.example.com.","data":{"priority":0,"weight":0,"port":8080,"target":"foo.example.com","service":"_whatyouwant","proto":"_tcp","name":"example.com"},"proxied":false,"proxiable":false,"ttl":300,"priority":1}'