我的上一个答案已转换为评论,但我现在对这个问题有了完整的答案。
编辑:我反复提到 JSON,但您不需要在 JSON 中解析它来获取 syncToken。无论如何,Google 都会为您提供 syncToken。
Google GAL API 的运行方式似乎与 Google Calendar 或 YouTube API 的“nextPageToken”参数类似,只要您有令牌,就可以查询下一页结果。
Google GAL 使用“syncToken”参数作为替代。与其他 Google API 非常相似,如果您将此 syncToken 附加到 URL 的末尾,您将获得下一页结果。请注意,我无法让 startIndex 参数工作(它允许您从 JSON 中的特定项目开始),因此如果您尝试通过查询获得特定结果,您很可能必须解析整个 JSON文件。在解析后的 JSON 中,应该有一个名为“gal$syncToken”的键。您可以在“条目”键/数组之前的 json 中找到它,这是列出所有全局域联系人的位置。
以下是它的外观示例:
"gal$syncToken": {
"$t": "0_1001_17011_AAN3FFNH2AEJ3SFBKZDRS36AHRXHND47YACXLGFJF5QBXCSQLUK57EX3LC765CU5IWG6ZXWHPS5WKHSDFJ26LRI5FRIVIQ3Z532PWKG3ZG45JW3RVCDZMWK5LLLHZSCBTJH5U6Q4LZRG4PKWQE42AOIPC4VJCZQIP5MBJHNUBZZJNLKISKETTQ6DNTRAPTI"
},
您的 syncToken 看起来会有所不同。为了获得下一页的结果,Google 实际上提供了一个已经预先附加了 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 个结果。如果您想在每个页面上显示更多内容,可以将 max-results 参数附加到此参数并让 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 的任何人都可以确认这是完成此任务的最佳方法,那就太好了!