使用Google Admin SDK和.NET时遇到错误。我在谷歌的网站上找到的实用例子信息不多。
唉,我的工作代码会在Google Apps域中搜索用户帐户,并返回有关该用户帐户的属性。我找不到的是当找不到搜索到的用户帐户时的错误处理(表示用户不存在)。
似乎这种情况作为HTTP 404响应返回。大。没问题,但我似乎无法在我的应用程序中优雅地处理这个问题。 IIS只是抛出一个"无法找到资源"错误消息在/xxx/appname/DefaultRedirectErrorPage.aspx。我不知道它来自何处,因为它未在web.config或default.asax中定义。
如果有一个实际的例子说明如何使用.NET来处理这样一个简单的响应,那就太棒了。
答案 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);
}