2014-10-08 70 views
0

我在谷歌開發者控制檯中設置了帳單和其他東西,並且啓用了雲端DNS APi,但是它非常令人困惑,而且文檔似乎讓我在圈子裏沒有真實的例子。如何使用google-api-php-client進行雲端DNS管理

我想要一個關於如何使用Google Cloud DNS API的示例,使用來自Github的google-api-php-client腳本來添加DNS條目,刪除DNS條目並更新DNS條目。

我也不確定我應該使用什麼憑據,因爲似乎沒有任何方法可以生成憑據 - 只有唯一的應用程序ID(無法更改)用於此計費服務。

他們的文檔指向任何有關使用此庫的問題的stackoverflow。

在此先感謝。

回答

2

我沒有使用雲端DNS,但API似乎遵循其他服務的相同格式,所以我會嘗試給你一個它如何工作的想法。

PHP庫的文檔不是最好的,但看着source code和評論,你可以理解應該做什麼。

我不確定您之前是否使用過該庫,但第一步是創建並驗證一個Google_Client對象。 Github上有例子。

您在Developers Console處創建憑證。選擇項目,然後在側欄上選擇API & auth/Credentials。

下面的代碼顯然只是一個草稿,檢查圖書館的來源也看到所有可用的方法和選項。

<?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); 
+1

我在尋找一個簡單的調用列表 - 又名$ dns-> AddDomain($ domain); $ dns-> CreateARecord($ domain,$ ip); $ dns-> CreateMXRecord($ domain,$ host,$ priotity);等等。他們的文檔是可怕的,並且通過閱讀成千上萬行代碼,通過猜測找到具體的函數調用 - 這裏有一個更好的方法。 – 2014-11-07 01:22:27

+1

這真的很有幫助。我查看了這個例子,並重構了我的代碼,直到我意識到setAdditions正在接受一個Google_Service_Dns_ResourceRecordSet,但應該要求我將它包裝在一個數組中 - 並且最沒有幫助的錯誤消息「The'entity.change'參數是必需的但失蹤了。「在將我的添加包裝到一個數組後,這一切都奏效了! – 2015-08-21 04:45:38

+0

Hi @ josh.chavanne,你可以分享一下數組格式。我也面臨同樣的問題。無法調試相同。 – Sreenath 2015-08-23 11:47:48