Со следующим кодом, использующим API API PHP от Google, я получаю этот ответ.
Google_Service_Exception с сообщением «Ошибка при вызове POST https://www.googleapis.com/dns/v1/projects/PROJECT-NAME/managedZones/DNSZONE/changes : (400) Параметр« entity.change »требуется, но отсутствует.
Где PROJECT-NAME и DNSZONE – мой проект и зона.
$client_email = MYCLIENT; $private_key = file_get_contents('config/credentials/KEY.p12'); $scopes = array('https://www.googleapis.com/auth/ndev.clouddns.readwrite'); $project = "PROJECT-NAME"; $managedZone = "DNSZONE"; $creds = new Google_Auth_AssertionCredentials($client_email,$scopes,$private_key); $client = new Google_Client(); $client->setAssertionCredentials($creds); $resource = new Google_Service_Dns_ResourceRecordSet(); $resource->kind = "dns#resourceRecordSet"; $resource->name = "testing.DNSZONE.net."; $resource->rrdatas[] = "testing.otherhost.com."; $resource->ttl = 800; $resource->type = "CNAME"; $dns = new Google_Service_Dns($client); $change = new Google_Service_Dns_Change(); $change->kind = "dns#change"; $change->setAdditions($resource); $dns->changes->create($project,$managedZone,$change);
Я немного смущен относительно того, как установить этот параметр. Или где я даже должен это определить.
Для уточнения ответа, setAdditions ожидает массив.
$change->setAdditions([ $resource ]);