gpt4 book ai didi

google-api - 当请求AppDataFolder时,Google Drive API返回错误 "Invalid value"和 "Invalid query"

转载 作者:行者123 更新时间:2023-12-04 04:28:37 61 4
gpt4 key购买 nike

我试图请求位于AppDataFolder中的所有文件的列表。

当我发出以下请求时:

GET https://www.googleapis.com/drive/v2/files?spaces=appDataFolder&maxResults=1000 HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer <MyToken>
User-Agent: <MyUserAgent>

我收到以下错误:
HTTP/1.1 400 Bad Request
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid query",
"locationType": "parameter",
"location": "q"
}
],
"code": 400,
"message": "Invalid query"
}
}

为什么我只想获取所有文件的列表,却要我查询? “q”参数是强制性的吗?我认为这是我的代码中的错误,因此我下载了适用于Python的最新Google Drive SDK,并遇到了同样的错误。

我尝试添加“q”参数(例如 q=title != 'foo'),但它也返回了Ivalid查询错误。奇怪的是,如果添加以下查询,我可以获取文件列表: q=title='<myfolder>' or title='<file1 in my folder>' or title='<file2 in my folder>'...,但是如果删除 title='<myfolder>',则会再次出现查询错误。

我也尝试了另一个请求,但是它返回了一个空列表,尽管我知道AppDataFolder中有文件:
GET https://www.googleapis.com/drive/v2/files?q='appfolder'+in+parents&access_token=<MyToken>

更新:该问题似乎特定于某个帐户。我使用另一个帐户测试了所有这些请求,并将所有文件隐藏在appdatafolder中。有效的要求:
https://www.googleapis.com/drive/v2/files?spaces=appDataFolder
https://www.googleapis.com/drive/v2/files?q='appDataFolder'+in+parents
https://www.googleapis.com/drive/v2/files?q='appfolder'+in+parents

第一个帐户可能有什么问题?

更新2:我无法再从其他帐户检索appdata文件列表。看起来API发生了一些变化。

最佳答案

“应用程序数据文件夹”是一个特殊的文件夹,您的应用程序只能访问。它的内容对用户隐藏,而对其他应用程序隐藏。尽管对用户隐藏了Application Data文件夹,但它仍存储在用户的云端硬盘中,因此使用用户的云端硬盘存储配额。 “应用程序数据”文件夹可用于存储配置文件,保存的游戏数据或用户不应直接与其交互的任何其他类型的文件。

即使用户看不到“应用程序数据”文件夹的内容,他们也可以在“管理应用程序”对话框中看到您的应用程序的“应用程序数据文件夹”使用的存储量

要求:

GET https://www.googleapis.com/drive/v3/files?q='appDataFolder'+in+parents&key={YOUR_API_KEY}

歇息:
{
"kind": "drive#fileList",
"incompleteSearch": false,
"files": [
]
}

使用Google Apis Explorer进行测试会返回0个文件,因为Google apis资源管理器客户端尚未将任何文件上传到我的google驱动器帐户。

回答:Appdata文件夹中的文件归创建它们的应用程序所有。如果您发现在用户应用程序数据文件夹中看到任何文件,那么我建议您使用的是错误的客户端,并且在那里看不到您的应用程序可能已上传的任何文件。

正确使用q

如文档中所述,q的正确用法是搜索应用程序数据文件夹。
'appDataFolder' in parents

AppData文档。

更新:

q=title='' or title='' or title=''..., but if I remove title=''



如果这些工作正常并且文件的父级未声明appdata,那么我建议您已将文件上传到用户的主要Google云端硬盘帐户中,而不是将其上传至appdata。这是一个坏主意,因为这样用户将无法查看文件,而他们可能无法对其进行编辑,这将导致文件困惑。如果您将其保存在一个文件夹中,但尚未授予他们访问权限,则用户实际上可能无法看到不确定该文件的文件。

更新2:

q='appDataFolder' in parents



将返回由您的应用创建的所有带有appDataFolder父文件夹的文件。

q='appfolder' in parents



将返回所有带有appfolder父文件夹的文件,该文件夹实际上是用户Google云端硬盘帐户上的目录,而不是隐藏的appDataFolder

spaces='drive'



这意味着数据存储在驱动器上。

spaces=appDataFolder



这是为了请求应用程序数据,但是我认为这仅在V3中受支持

关于google-api - 当请求AppDataFolder时,Google Drive API返回错误 "Invalid value"和 "Invalid query",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49796872/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com