我们在新的Google工作表和旧的Google工作表之间的导出API中发现了一种新行为。
还有点不清楚端点应该在哪里 - 我的理解是一切都应该最终转移到驱动API。
因此,我们正在做的是首先使用以下方式获取文档的信息:
https://www.googleapis.com/drive/v2/files/
这很好用,我们得到所有信息。
在此范围内,我们的导出链接如下所示:
“exportLinks”:{ “text / csv”:“https://docs.google.com/spreadsheets/export?id=& exportFormat = csv”, “application / pdf”:“https://docs.google.com/spreadsheets/export?id=& exportFormat = pdf”, “application / vnd.openxmlformats-officedocument.spreadsheetml.sheet”:“https://docs.google.com/spreadsheets/export?id=& exportFormat = xlsx” }
指示我们使用docs.google.com端点,我们这样做。
当我们使用“application / vnd.openxmlformats-officedocument.spreadsheetml.sheet”链接(excel格式)时,这适用于旧版Google表格。
但是,对于新的Google工作表,我们会重定向到我们的Google Apps域中的端点,其格式如下:
https://www.google.com/a/。com / ServiceLogin?等
我们已将OAuth令牌放在标题中,再次,这适用于旧工作表但不适用于新工作表。如果我们删除令牌,那么它会将我们重定向到另一个登录页面。
如果身份验证出现问题,为什么重定向而不是返回403?为什么只有新床单不老?
这导致返回一些HTML,而不是文件 - 就像我们是浏览器一样。
所以问题是双重的 -
1)我们如何使用Oauth
以编程方式下载excel格式的新工作表和2)如果它与旧表不同,我们如何检测哪一个可以支持两者?