【问题标题】:Trying to delete Orgunit in Admin Directory API always returns 404尝试在 Admin Directory API 中删除 Orgunit 总是返回 404
【发布时间】:2018-10-20 01:51:42
【问题描述】:

无论我尝试 API Explorer https://developers.google.com/admin-sdk/directory/v1/reference/orgunits/delete#try-it 还是使用 .NET API 时都会出现同样的问题。

我有一个简单的集成测试,可以在该组织单元下创建一个新的组织单元 + 用户。

然后我这样做:

  1. 列出与该组织路径匹配的所有用户
  2. 删除成功
  3. 尝试删除组织单位本身 => 404

我知道 orgunit 还在那里。我可以进入 API Explorer 并在此处列出 https://developers.google.com/admin-sdk/directory/v1/reference/orgunits/list

如果我现在尝试在 API Explorer 中删除它,就没有这样的运气了。我还尝试使用我的根 OU 的真实客户 ID(而不是 my_customer)。还是没有运气。

唯一我可以删除这个组织单位的方法是通过管理控制台。

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

为什么我无法通过 API 或 API Explorer 删除 Orgunit?

【问题讨论】:

  • 您是否确认在删除过程中提供了正确的 customerId?您可以尝试使用特定的 customerId 而不是 my_customer 进行调试吗?
  • 是的,我验证了正确的“C”customerId。从字面上尝试了一切。我绝对相信这个 API 不起作用。我不是唯一提出此申请的人。其他几个 SO 链接,我赞成的 Google 问题跟踪器中有一个问题。很难相信它已经被破坏了这么久并且没有人解决了它?我一定是少数真正尝试使用它的人之一,但考虑到他们的规模,这似乎是不可能的。
  • 好的,您能否提供问题跟踪链接,以便其他开发人员可以看到。

标签: google-api google-admin-sdk google-apis-explorer


【解决方案1】:

您可以使用以下可嵌入 Google 表格文档的 Google Apps 脚本删除 OU 列表。

  • 您需要管理员权限才能运行该脚本。
  • 脚本指向一个活动的 Google 表格,其中有两张表格:OrgUnitsLog
  • 名为 OrgUnits 的工作表有两列:一列用于 orgUnitPath,另一列 orgUnitId
  • 您的客户 ID 存储在变量 CUSTOMER_ID 中。
  • 警告,最终您会收到与“请求率更高”相关的错误 比配置”,只需隔离案例并重试。

这是脚本:

function DeleteOrgUnits(){
  var inputSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("OrgUnits");
  var outputSheetLog = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Log");  
  var dataValues =   inputSheet.getDataRange().getValues();
  var i, err, errObj;
  var orgUnit, orgUnitItem, orgUnitId = [], orgUnitPath;
  var customerId = CUSTOMER_ID;
  
  outputSheetLog.getDataRange().clear();


  if (dataValues){
    for ( i in dataValues ){
      orgUnit = dataValues[ i ];
      orgUnitPath = orgUnit[ 0 ];
      orgUnitId = orgUnit[ 1 ];
      if (orgUnitPath.length > 0 ){
        err = false;
        try { 
          orgUnitItem = AdminDirectory.Orgunits.remove(customerId, orgUnitId);
        } catch(e){ err = true; errObj = e; };
        if (err)
          outputSheetLog.appendRow([orgUnitPath, 'Error', orgUnitItem, errObj.message ]); 
        else
          outputSheetLog.appendRow([orgUnitPath, 'Deleted', orgUnitItem ]);
      }
    }
    outputSheetLog.appendRow(['Done!']);
  } else {
    outputSheetLog.appendRow(['No Data!']);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-24
    • 2021-06-03
    • 2021-05-16
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多