Google drive api GoogleDriveAPI说有些文件不存在,但事实上确实存在

Google drive api GoogleDriveAPI说有些文件不存在,但事实上确实存在,google-drive-api,google-sheets,google-spreadsheet-api,Google Drive Api,Google Sheets,Google Spreadsheet Api,因此,在我的应用程序中,我可以通过使用Google电子表格API从用户的Google Drive帐户检索电子表格文档列表。我将文件列表填充到用户可以单击的ui控件中,然后检索其工作表列表。在某些情况下,它能像预期的那样工作,但在另一些情况下则不然。在我的请求中,我使用从文件列表返回的url,即使如此,API仍会响应: Sorry, the file you have requested does not exist. Make sure that you have the correct URL

因此,在我的应用程序中,我可以通过使用Google电子表格API从用户的Google Drive帐户检索电子表格文档列表。我将文件列表填充到用户可以单击的ui控件中,然后检索其工作表列表。在某些情况下,它能像预期的那样工作,但在另一些情况下则不然。在我的请求中,我使用从文件列表返回的url,即使如此,API仍会响应:

Sorry, the file you have requested does not exist.
Make sure that you have the correct URL and that the owner of the file hasn't deleted it.
当然,文件没有被删除。我在回复我的文件列表请求时得到了它。我还可以通过普通的网络浏览器访问该文件。此外,URL是正确的,因为它是API响应的URL。我的代码不会操纵在初始文件响应中返回的url。事实上,以下是用于抓取工作表的URL:

https://spreadsheets.google.com/feeds/worksheets/{long key here}/private/full
所以,我的问题是,为什么我对某些工作表的请求会返回一个带有实际工作表列表的响应,而对其他工作表(我可以访问,并且我知道存在这些工作表),我会得到错误的响应

谢谢,
阿里

我在自己的东西里遇到了这个问题。至少在我遇到的情况下,这似乎是新床单的问题。很抱歉,我没有更多的解决方案(我仍在努力寻找解决方案),但这可能会帮助您缩小问题的范围。

我自己也遇到了这个问题。至少在我遇到的情况下,这似乎是新床单的问题。很抱歉,我没有更多的解决方案(我仍在努力寻找解决方案),但这可能会帮助您缩小问题的范围。

我的应用程序使用的是OAuth 2.0,我在使用新的Google工作表时遇到了相同的错误。修复了在OAuth的authorize调用期间对发送的范围参数进行更改,然后重新授权(重新初始化OAuth流并获取新令牌)的问题

到目前为止,我的应用程序中的范围仅为:

https://spreadsheets.google.com/feeds
更新了问题的范围和解决方案在我的案例中:

https://spreadsheets.google.com/feeds https://docs.google.com/feeds

我的应用程序正在使用OAuth 2.0,我在使用新的Google表单时遇到了相同的错误。修复了在OAuth的authorize调用期间对发送的范围参数进行更改,然后重新授权(重新初始化OAuth流并获取新令牌)的问题

到目前为止,我的应用程序中的范围仅为:

https://spreadsheets.google.com/feeds
更新了问题的范围和解决方案在我的案例中:

https://spreadsheets.google.com/feeds https://docs.google.com/feeds


手动浏览时使用的凭据是否与代码中使用的凭据相同?如果没有,请仔细检查权限。谢谢您的建议。我会检查确认的。但为什么电子表格API会将URL返回给用户无法访问的电子表格?我的应用程序的作用域是只读的:“”不确定Google的权限系统是如何工作的,但对于许多文件系统,列出目录内容的权限和打开特定文件的权限是分开的。好的,我验证了我是使用与我正在通过Google Drive的web界面检查的帐户相同的帐户登录的,并且确信api声明它丢失了。不知道该怎么办,但我感觉可能是个bug?我也看到了同样的情况。谷歌有什么问题吗?事实上,我可以发布到特定的工作表,但我不能从同一个工作表中查询。到处使用相同的帐户信息。在其他(较旧的)工作表上,它可以工作。在手动浏览时,您是否使用与代码中使用的相同的凭据?如果没有,请仔细检查权限。谢谢您的建议。我会检查确认的。但为什么电子表格API会将URL返回给用户无法访问的电子表格?我的应用程序的作用域是只读的:“”不确定Google的权限系统是如何工作的,但对于许多文件系统,列出目录内容的权限和打开特定文件的权限是分开的。好的,我验证了我是使用与我正在通过Google Drive的web界面检查的帐户相同的帐户登录的,并且确信api声明它丢失了。不知道该怎么办,但我感觉可能是个bug?我也看到了同样的情况。谷歌有什么问题吗?事实上,我可以发布到特定的工作表,但我不能从同一个工作表中查询。到处使用相同的帐户信息。在其他(较旧的)工作表上,它确实工作有趣,是的。我注意到它适用于新的工作表,也适用于新与其他帐户共享的旧工作表。我可以确认,我看到的是新创建的工作表。如果你找到了问题的症结所在,请发布你的解决方案:)@ariestavandruszkowski下面的解决方案对我有效。奇怪的是这是必要的,但它确实有效。有趣,是的。我注意到它适用于新的工作表,也适用于新与其他帐户共享的旧工作表。我可以确认,我看到的是新创建的工作表。如果你找到了问题的症结所在,请发布你的解决方案:)@ariestavandruszkowski下面的解决方案对我有效。奇怪的是这是必要的,但它确实有效。谢谢!它工作得很好,但是谷歌应该更新他们的文档,有一个像表单一样广泛的服务却没有记录这一变化是非常荒谬的。对我来说不起作用,我必须手动与服务帐户电子邮件地址为109xxxxxxx71的用户共享电子表格-XXX@developer.gserviceaccount.com使工作表对API可见。这是怎么回事?我是否需要与服务帐户共享每张表,以便服务帐户可以访问它?谢谢!它工作得很好,但是谷歌应该更新他们的文档,有一个像表单一样广泛的服务却没有记录这一变化是非常荒谬的。对我来说不起作用,我必须手动与服务帐户电子邮件地址为109xxxxxxx71的用户共享电子表格-XXX@developer.gserviceaccount.com使工作表对API可见。这是怎么回事?我是否需要与服务帐户共享每张工作表,以便服务帐户可以访问它?