Google apps script Google应用程序脚本-如何让我的AdminDirectory.Users.List查询被接受?

Google apps script Google应用程序脚本-如何让我的AdminDirectory.Users.List查询被接受?,google-apps-script,Google Apps Script,我使用GAS创建了一个联系人查找,其中函数参数构建了一个查询,该查询用于AdminDirectory.Users.List。此问题仅在使用orgTitle和orgDepartment参数时发生。当我复制并粘贴记录器输出以代替q变量时,查询工作。如果我使用q变量,它会失败 函数列表AllUsersBase(name=null,familyName=null,givenName=null,orgTitle='Help Desk',orgDepartment=null){ var aQuery='q

我使用GAS创建了一个联系人查找,其中函数参数构建了一个查询,该查询用于AdminDirectory.Users.List。此问题仅在使用orgTitleorgDepartment参数时发生。当我复制并粘贴记录器输出以代替q变量时,查询工作。如果我使用q变量,它会失败

函数列表AllUsersBase(name=null,familyName=null,givenName=null,orgTitle='Help Desk',orgDepartment=null){
var aQuery='query:\''
如果(名称!==null){
Logger.log('Name:'+Name);
var aQuery=aQuery+'name:'+name+'';
}如果(familyName!==null){
Logger.log('familyName:'+familyName);
var aQuery=aQuery+'familyName:'+familyName+'';
}if(givenName!==null){
Logger.log('givenName:'+givenName);
var aQuery=aQuery+'givenName:'+givenName+';
}如果(orgTitle!==null){
Logger.log('orgTitle:'+orgTitle);
var aQuery=aQuery+'orgTitle:\\\''+orgTitle+'\\\\';
}如果(组织部门!==null){
Logger.log('orgDepartment:'+orgDepartment)
var aQuery=aQuery+'orgDepartment:\\\''+orgDepartment+'\\\';
}
var aQuery=aQuery+'\''
var q=aQuery.toString();
Logger.log(q);
var pageToken;
var-page;
做{
page=AdminDirectory.Users.list({
域名:“yourdomain.com”,
问:问:,
订购人:“givenName”,
最大结果:100,
pageToken:pageToken
});
var users=page.users;
如果(用户){
对于(var i=0;i}
您的脚本存在许多问题

首先,不需要重新声明
aQuery
变量。
var aQuery=…
的第一个声明对于您的用例来说已经足够了

其次,
query
不是搜索子句的有效字段,因此不需要()。为了澄清,当您第一次声明
aQuery
变量时,您将其初始化为
var aQuery='query:\'。这里,
query
用作搜索子句中的字段。但是,在这种情况下,它不是一个有效的选项

第三,开头单引号在
orgTitle
orgDepartment
字段值上的位置不正确,开头转义的单引号应位于转义的反斜杠之前

因此,不是:

var aQuery=aQuery+'orgTitle:\\\''+orgTitle+'\\\';
你应该:

var aQuery=aQuery+'orgTitle:\'\\'+orgTitle+'\\\'';

你好。我继续尝试你的建议,但没有结果。我应该删除q变量,但我只是将其保留在测试中。我还检查了文档和查询是否有效。最后注意到,查询中需要转义\。如果您复制并超过记录的q变量,它将工作。感谢您在这方面的投入,非常感谢。它是用户的有效参数:list endpoint。但它不是搜索子句的有效字段。它们是两个截然不同的概念(即参数和搜索子句字段)。从未说过转义的单引号是不需要的。你只是没有正确地放置开头的单引号。更新了我的答案以澄清第二个问题,并在第三个问题的关键词上加粗以强调。