Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 尝试删除管理目录API中的Orgunit时,始终返回404_Google Api_Google Admin Sdk_Google Apis Explorer - Fatal编程技术网

Google api 尝试删除管理目录API中的Orgunit时,始终返回404

Google api 尝试删除管理目录API中的Orgunit时,始终返回404,google-api,google-admin-sdk,google-apis-explorer,Google Api,Google Admin Sdk,Google Apis Explorer,无论我是尝试API资源管理器还是使用.NET API,都会遇到同样的问题 我有一个简单的集成测试,在Orgunit下创建一个新的Orgunit+用户 然后我会这样做: 列出与该orgunit路径匹配的所有用户 成功删除它们 尝试删除orgunit本身=>404 我知道那个单位还在那里。我可以进入API资源管理器并在这里列出它 如果我现在尝试在API资源管理器中删除它,就不会有这样的运气。我还尝试使用我的根OU的真实客户id(而不是我的_客户)。还是不走运 我可以删除此orgunit的唯一方法

无论我是尝试API资源管理器还是使用.NET API,都会遇到同样的问题

我有一个简单的集成测试,在Orgunit下创建一个新的Orgunit+用户

然后我会这样做:

  • 列出与该orgunit路径匹配的所有用户
  • 成功删除它们
  • 尝试删除orgunit本身=>404
  • 我知道那个单位还在那里。我可以进入API资源管理器并在这里列出它

    如果我现在尝试在API资源管理器中删除它,就不会有这样的运气。我还尝试使用我的根OU的真实客户id(而不是我的_客户)。还是不走运

    我可以删除此orgunit的唯一方法是通过管理控制台

    这成功了——该组织下没有子组织或用户,否则它将失败


    为什么我不能通过API或API资源管理器删除Orgunit?

    您可以使用以下Google Apps脚本删除OU列表,您可以将其嵌入Google Sheets文档中

    • 您需要管理员权限才能运行脚本
    • 脚本指向一个活动的Google工作表,其中有两个工作表:OrgUnitsLog
    • 名为OrgUnits的工作表有两列:一列用于orgUnitPath,另一列用于 对于组织ID
    • 您的客户id存储在变量customer\u id
    • 警告,最终会出现与“请求速率更高”相关的错误 只需隔离案例并重试
    以下是脚本:

    函数DeleteOrgUnits(){
    var inputSheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“OrgUnits”);
    var outputSheetLog=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“日志”);
    var dataValues=inputSheet.getDataRange().getValues();
    变量i,err,errObj;
    变量orgUnit,orgUnitItem,orgUnitId=[],orgUnitPath;
    var customerId=客户\用户ID;
    outputSheetLog.getDataRange().clear();
    if(数据值){
    用于(数据值中的i){
    orgUnit=数据值[i];
    orgUnitPath=orgUnit[0];
    orgUnitId=orgUnit[1];
    如果(orgUnitPath.length>0){
    错误=错误;
    试试{
    orgUnitItem=AdminDirectory.Orgunits.remove(customerId,orgUnitId);
    }catch(e){err=true;errObj=e;};
    如果(错误)
    appendRow([orgUnitPath,'Error',orgUnitItem,errObj.message]);
    其他的
    appendRow([orgUnitPath,'Deleted',orgUnitItem]);
    }
    }
    appendRow(['Done!']);
    }否则{
    appendRow(['No Data!']);
    }
    
    }
    您是否验证了在删除过程中是否提供了正确的customerId?为了调试的目的,您可以尝试一个特定的customerId而不是我的客户吗?是的,我验证了正确的“C”customerId。几乎什么都试过了。我绝对相信这个API不起作用。我不是唯一一个提起诉讼的人。还有几个其他的SO链接,在谷歌的问题跟踪程序中有一个问题我投了赞成票。很难相信它已经被打破这么长时间了,而且没有人解决它?我必须是少数几个真正尝试使用它的人之一,但考虑到他们的规模,这似乎是不可能的。好的,你能提供问题跟踪链接,以便其他开发人员可以看到它。当然,这里是: