我使用Google Apps脚本(Javascript)使用Users.get method中的Google Apps Admin SDK Directory API检索用户的详细信息。
获取用户的代码是:
var url = 'https://www.googleapis.com/admin/directory/v1/users/'+email+'?key='+publicApiAccessKey;
var scope = "https://www.googleapis.com/auth/admin.directory.user.readonly";
var fetchArgs = googleOAuth_("Users",scope);
fetchArgs.method = "GET";
fetchArgs.muteHttpExceptions=true;
var userObject = UrlFetchApp.fetch(url, fetchArgs);
响应是Google Apps Admin SDK User resource和此格式的对象:
{
"kind": "admin#directory#user",
"id": string,
"etag": etag,
"primaryEmail": string,
"name": {
"givenName": string,
"familyName": string,
"fullName": string
},
"isAdmin": boolean,
"isDelegatedAdmin": boolean,
"lastLoginTime": datetime,
// rest of the properties excluded
}
如何获取 fullName 的值?
这是我到目前为止所做的尝试,没有成功:
Logger.log( Object.prototype.toString.call(userObject) ); // returns [object JavaObject]
Logger.log( userObject.name.fullName ); // Cannot read property "fullName" from undefined.
Logger.log( userObject.fullName ); // undefined
Logger.log( userObject.name ); // undefined
Logger.log( userObject['fullName'] ); // undefined
Logger.log( userObject['name'] ); // undefined
Logger.log( userObject['name','fullName'] ); // undefined
答案 0 :(得分:1)
根据您对该问题的评论,我怀疑您做过类似的事情:
var userObject = Users.get(/*...args...*/);
...在您用于获取响应的任何层中,因此userObject
不是用户对象,它是某种形式的自定义XHR对象。您链接到的文档特别是Java和Python,而不是浏览器端。 (当然,除非使用Java小程序。)
检查文档,很可能是它希望你提供一个回调/ lambda或在该对象上调用一个方法(getContent
看起来很诱人)来获得实际的响应。
答案 1 :(得分:1)
作为T.J.帮我发现,Google Apps脚本UrlFetchApp.fetch()方法不会返回Javascript对象。它返回的内容基本上是以JSON表示法构造的字符串,但需要先进行解析。 Google Apps脚本中有一个用于解析JSON结构字符串的内置库。
以下是最终的工作代码:
var url = 'https://www.googleapis.com/admin/directory/v1/users/'+email+'?key='+publicApiAccessKey;
var scope = "https://www.googleapis.com/auth/admin.directory.user.readonly";
var fetchArgs = googleOAuth_("Users",scope);
fetchArgs.method = "GET";
fetchArgs.muteHttpExceptions=false;
var userJson = UrlFetchApp.fetch(url, fetchArgs);
var userObject = JSON.parse(userJson);
var fullName = userObject.name.fullName;
我了解了JSON.parse()here。