【问题标题】:Need to handle 404 errors when using the Google Admin SDK and searching for users使用 Google Admin SDK 搜索用户时需要处理 404 错误
【发布时间】:2014-12-15 21:01:31
【问题描述】:

我在使用 Google Admin SDK 和 .NET 时遇到错误。在 Google 的网站上,我找不到太多关于使用它的实际示例的信息。

唉,我有可以在 Google Apps 域中搜索用户帐户并返回有关该用户帐户的属性的工作代码。我没有的是针对未找到搜索到的用户帐户(表示该用户不存在)时的场景的错误处理。

似乎这种情况是作为 HTTP 404 响应返回的。伟大的。没问题,但我似乎无法在我的应用程序中优雅地处理这个问题。 IIS 只是在 /xxx/appname/DefaultRedirectErrorPage.aspx 处抛出“找不到资源”错误消息。我不确定这是从哪里来的,因为它没有在 web.config 或 default.asax 中定义。

如果有一个实际示例说明如何使用 .NET 处理来自 Google 的如此简单的响应,那就太好了。

【问题讨论】:

  • 你能分享你正在使用的代码吗?

标签: google-admin-sdk


【解决方案1】:

我对@9​​87654321@ 库一无所知...但我已经处理过底层 HTTP 请求(我正在使用 PHP)。 API 可能不会返回您认为它应该返回的内容...

如果出现错误,API 应在JSON 响应中返回一个“错误”对象。我在查找错误时会检查它。

在我与目录 API 的交互中,当检索一个不存在的用户时,JSON 响应不包含用户对象。即使没有用户返回,它也会返回 200 响应,而不是错误。

例如,如果我搜索一个不存在的用户,Google 会发回如下内容:

{
    "kind": "admin#directory#users",
    "etag": "\"LOTSOFCHARACTERSHERETHATAREAKEYOFSOMEKIND\""
}

当我搜索一个有效用户时,我得到的 JSON 是这样的:

{
    "kind": "admin#directory#users",
    "etag": "\"LOTSOFCHARACTERSHERETHATAREAKEYOFSOMEKIND\""
    "users": [
        "kind": "admin#directory#user",
        "id": "109020414202478541143",
        //  lots of other properties here  //
    ]
}

您使用的是 Google 的 .NET 库还是您自己的库?无论哪种方式,我都会检查以确保您尝试访问的用户对象在搜索无效用户时确实存在。

希望有帮助。

【讨论】:

    【解决方案2】:

    晚了几年,但我试图弄清楚同样的事情,发现 Google 没有任何关于其 Admin SDk 的错误处理文档。我可以在 Google Apps Script 中尝试使用 try...catch 来解决它。

    try {
      var page = AdminReports.CustomerUsageReports.get(date, {
        parameters: parameters.join(','),
        maxResults: 500,
        customerId: customerId
      });
    } catch (error) {
      console.log(error.code);
      console.log(error.message);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2014-06-03
      • 1970-01-01
      • 2014-03-04
      相关资源
      最近更新 更多