我需要知道如何正确使用文件搜索方法参数,以便在Drive API中遍历文件夹树。
使用Javascript,我已完成Quickstart,在Google Dev Console中设置应用和API启用,已获得授权,并且可以使用{{1}在root用户读取文件名}方法,但是为了导航到特定目录而停留在运行Files Search调用的位置。
我尝试了这个变种:
gapi.client.drive.files.list()
...但我对如何调用GET请求感到困惑。我以前从未直接使用过来自JS / HTML的REST调用,所以我可能会遗漏一些基本的东西...但是,我真的不知道如何在我的代码中使用它...
我尝试使用Files:List页面上的查询参数,只使用fileID作为参数,但我一直得到400响应:
GET https://www.googleapis.com/drive/v2/files?q='0B36wII03Fph8aFhtTFN5SVRYR0U'+in+parents&key={CLIENT_ID}
我确定它很简单,但纯粹的Http Rest东西并不是我的强项......感谢任何潜在客户!
答案 0 :(得分:1)
您是否尝试使用文档工具? https://developers.google.com/drive/v3/reference/files/list
您使用的查询是正确的,只需更改版本,您使用的是v2,我认为此参数适用于v3。
当我使用'+'字符时,我也遇到了一些问题,我只是在工具中删除它并且它有效,似乎它正在重新编码字符。
答案 1 :(得分:1)
为 string nlsLang = Settings.Default.NLS_LANG;
var arr = nlsLang.Split('_');
string language = arr[0];
arr = arr[1].Split('.');
string territory = arr[0];
string characterSet = arr[1];
OracleGlobalization info = connection.GetSessionInfo();
info.Language = language;
info.Territory = territory;
info.NumericCharacters = characterSet;
connection.SetSessionInfo(info);
参数尝试不同的编码。
而不是
q
使用它:
q='0B36wII03Fph8aFhtTFN5SVRYR0U'+in+parents
哦,并更新到API的v3。
虽然使用v3 API,但在调用此URL时我发现了完全相同的问题:
q=%270B36wII03Fph8aFhtTFN5SVRYR0U%27%20in%20parents
奇怪的是,当您使用Google APIs Explorer时,完全相同的URL会记录为正常工作。
作为最后的手段,我尝试了不同的请求参数编码,然后API工作。
这是我的替代电话:
https://www.googleapis.com/drive/v3/files?orderBy=name&q=name+contains+'search+term'+AND+mimeType+contains+'application%2Fvnd.google-apps.folder'&key={YOUR_API_KEY}
这与Google云端硬盘文档相反,但效果很好。