使用Google Admin SDK并搜索用户时需要处理404错误

时间:2014-12-15 21:01:32

标签: google-admin-sdk

使用Google Admin SDK和.NET时遇到错误。我在谷歌的网站上找到的实用例子信息不多。

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

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

如果有一个实际的例子说明如何使用.NET来处理这样一个简单的响应,那就太棒了。

2 个答案:

答案 0 :(得分:0)

我对.NET库一无所知......但我已经使用了底层的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图书馆还是您自己的图书馆?无论哪种方式,我都会检查以确保在搜索到无效用户时,您尝试访问的用户对象确实存在。

希望有所帮助。

答案 1 :(得分:0)

几年后,但我试图弄清楚同一件事,发现Google的Admin SDk上没有任何错误处理文档。我可以尝试一下...解决Google Apps脚本中的问题。

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