如何使用google api php客户端进行云DNS管理

如何使用google api php客户端进行云DNS管理,php,google-api-php-client,google-cloud-dns,Php,Google Api Php Client,Google Cloud Dns,我在googledeveloper控制台中设置了billing和诸如此类的东西,并启用了clouddnsapi,但是它非常混乱,文档似乎让我陷入了没有实际示例的圈子 我想要一个关于如何使用Google Cloud DNS API的示例,使用Github中的Google API php客户端脚本添加DNS条目、删除DNS条目和更新DNS条目 我也不确定应该使用什么凭据,因为似乎没有任何方法生成凭据——只有一个唯一的应用程序id(无法更改)用于此计费服务 他们的文档指向stackoverflow,询

我在googledeveloper控制台中设置了billing和诸如此类的东西,并启用了clouddnsapi,但是它非常混乱,文档似乎让我陷入了没有实际示例的圈子

我想要一个关于如何使用Google Cloud DNS API的示例,使用Github中的Google API php客户端脚本添加DNS条目、删除DNS条目和更新DNS条目

我也不确定应该使用什么凭据,因为似乎没有任何方法生成凭据——只有一个唯一的应用程序id(无法更改)用于此计费服务

他们的文档指向stackoverflow,询问有关使用此库的任何问题


提前感谢。

我没有使用云DNS,但API似乎遵循其他服务的相同格式,因此我将尝试让您了解它的工作原理

PHP库的文档不是最好的,但是查看这些文档和注释可以理解应该做什么

我不确定您以前是否使用过该库,但第一步是创建并验证
Google\u客户端
对象。Github上有一些例子

您可以在服务器上创建凭据。选择项目,然后在侧边栏上选择API和身份验证/凭据

下面的代码显然只是一个草稿,也可以查看库的源代码,查看所有可用的方法和选项

<?php

// Assuming $client is a Google_Client instance that
// is already authenticated

$dns = new Google_Service_Dns($client);

$change = new Google_Service_Dns_Change();

$addition1 = new Google_Service_Dns_ResourceRecordSet();
// configure $addition1, check the methods on the lib

$deletion1 = new Google_Service_Dns_ResourceRecordSet();
// configure $deletion1, check the methods on the lib

$additions = array($addition1, ..., $additionN);
$deletions = array($deletion1, ..., $deletionN);

$change->setAdditions($additions);
$change->setDeletions($deletions);
// other settings on $change, check the lib

$dns->changes->create($project, $managedZone, $change);

我正在寻找一个简单的呼叫列表--aka$dns->AddDomain($domain)$dns->CreateARecord($domain,$ip)$dns->CreateMXRecord($domain,$host,$priotity);他们的文档很糟糕,阅读数千行代码,通过猜测找到特定的函数调用——肯定有更好的方法。这真的很有帮助。我查看了这个示例,并重构了代码,但毫无效果,直到我意识到setAdditions接受了一个Google_服务_Dns_ResourceRecordSet,但本应要求我将其包装在一个数组中,并且出现了最没有帮助的错误消息“需要'entity.change'参数,但缺少它”在将我添加的内容包装成一个数组后,一切都解决了!嗨@josh.chavanne,你能分享一下这个数组格式吗。我也面临同样的问题。无法调试相同的。@Sreenath我刚刚初始化了一个数组,并将所有添加的内容添加到该数组中,类似于上面的代码示例。我只是将一条记录推入Google_服务_Dns_Change::setAdditions,并传入一个Google_服务_Dns_ResourceRecordSet对象,而没有将其包装在数组中。希望这是有帮助的。