【问题标题】:Google Cloud DNS Services - entity.change parameter is required but missing谷歌云 DNS 服务 - entity.change 参数是必需的,但缺少
【发布时间】:2015-11-14 22:18:30
【问题描述】:

通过使用 Google 的 PHP API 客户端的以下代码,我收到了此响应。

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);

我对如何设置这个参数有点困惑。或者我什至要定义它。

【问题讨论】:

  • 我想通了——经过 6 个小时的斗争之后——我意识到我需要将我的添加包装在一个数组中。错误信息晦涩难懂且毫无帮助。
  • 是抛出错误的 rrdatas[ ] 数组吗?
  • 我需要将我的 Google_Service_Dns_ResourceRecordSets 包装在一个数组中。我会尽快修改并给出答案。

标签: php dns google-cloud-platform google-api-client google-cloud-dns


【解决方案1】:

为了澄清答案,setAdditions 需要一个数组。

$change->setAdditions([ $resource ]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多