2015-10-30 21 views
0

Reposting due to lack of answers的域名谷歌全球地址列表限制爲250個結果[翻版]

我試圖查詢谷歌全球通訊簿特定域,這個答案正在這裏領導(具體答案由周杰倫李) 。

這一切都很好,在Google的OAuth Playground中完美運行,但它似乎只限於250位用戶。鑑於此功能似乎完全沒有記錄,並且我無法通過查看其github回購(特別是此文件)來說明,有沒有人知道如何查詢未來250位用戶或如何設置結果數量?

謝謝!

回答

0

我最後的答案已轉換成評論,但我現在有一個完整的答案來解決這個問題。

編輯:我反覆提到JSON,但是你不需要在JSON中解析這個來獲得syncToken。無論如何,Google都會爲您提供syncToken。

Google GAL API似乎以與Google日曆或YouTube API的「nextPageToken」參數類似的方式運行,只要您擁有令牌,您就可以查詢結果的下一頁。

Google GAL使用「syncToken」參數作爲替換。與其他Google API非常相似,如果將此syncToken追加到URL的末尾,您將獲得結果的下一頁。請注意,我無法獲取startIndex參數(它允許您從JSON中的特定項目開始),因此如果您試圖通過查詢獲取特定結果,您很可能必須解析整個JSON文件。在解析的JSON內部,應該有一個名爲「gal $ syncToken」的鍵。您可以在列出所有全局域名聯繫人的「entry」鍵/數組之前,在json中找到它。

這裏是它會是什麼樣子的例子:

"gal$syncToken": { 
    "$t": "0_1001_17011_AAN3FFNH2AEJ3SFBKZDRS36AHRXHND47YACXLGFJF5QBXCSQLUK57EX3LC765CU5IWG6ZXWHPS5WKHSDFJ26LRI5FRIVIQ3Z532PWKG3ZG45JW3RVCDZMWK5LLLHZSCBTJH5U6Q4LZRG4PKWQE42AOIPC4VJCZQIP5MBJHNUBZZJNLKISKETTQ6DNTRAPTI" 
}, 

你syncToken將有所不同。爲了得到結果的下一個頁面,谷歌實際上提供的是已經有syncToken鏈接預附:

{ 
    "rel": "next", 
    "type": "application/atom+xml", 
    "href": "https://www.google.com/m8/feeds/gal/example.com/full?sync-token=0_1001_17011_AAN3FFNH2AEJ3SFBKZDRS36AYRXHND47YACXLGFJF5QBXCSQLUK57EX3LC765CU5IWG6ZXWHPS5WKHSDFJ26LRI5FRIVIQ3Z562PWKG3ZG45JW3RVCDZMWK5LLLH6SCBTJH5U6Q4LZRG4PKWQE42AOIPC4VJCZQIP5MBJHNUBZZJNLKBSKETTQ6DNTRAPTI" 
    }, 

然而,這樣只會讓你的下一個250分的結果。如果您需要在每個頁面上添加更多內容,您可以將最大結果參數添加到此,並讓Google以JSON格式將其返回。

https://www.google.com/m8/feeds/gal/example.com/full?sync-token=INSERT_SYNCTOKEN_HERE&alt=json&max-results=10000 

希望這有助於任何人看到這一點。 Google GAL在很大程度上似乎基本上沒有文檔,我無法在互聯網上的其他任何地方找到這個問題的答案。如果Google的任何人都可以證實這是實現這一目標的最佳方法,那將非常棒!