我正在尝试将脚本从Profiles API迁移到Directory API。其目的是使用includeInGlobalAddressList属性来管理某些Google Apps域用户的联系信息的可见性。无法使用目录API更改includeInGlobalAddressList
我可以获取用户对象,并且能够提交修补程序请求,但不会进行更改。从patch方法返回的对象具有includeInGlobalAddressList的原始值。在api文档中有一些对etags的模糊引用,但是我不清楚etag是否应该包含在patch主体中或作为If-Match头文件。 (?如果这个问题的答案是如果-Match头,然后我怎么传递,在使用Python库)
http = httplib2.Http()
http = credentials.authorize(http)
service = build("admin", "directory_v1", http=http)
usersvc=service.users()
d=usersvc.get(userKey=userkey, projection="basic",fields="etag,id,includeInGlobalAddressList").execute()
visible = d['includeInGlobalAddressList']
# logic to decide what change elided. this is "transition from visible to invisible contact"
pch=json.dumps({'includeInGlobalAddressList': False, 'etag': d['etag']})
print pch
res=usersvc.patch(userKey=userkey, body=pch, fields="etag,id,includeInGlobalAddressList").execute()
print json.dumps(res, indent=4)
结果我得到的是:
{"includeInGlobalAddressList": false, "etag": "\"WIg4sZOp0a-9Z5MJXVMQx1SQW5A/avXX6NaPX78Y6qFG7S4TqKFMIEU\""}
{
"includeInGlobalAddressList": true,
"etag": "\"WIg4sZOp0a-9Z5MJXVMQx1SQW5A/J0MuBtIvJoTcifknCMScMlyCQnc\"",
"id": "109793672165131484748"
}
出现这种情况即使我不使用fields
或通过etag。
我不认为你应该在将patch体传递给patch()方法之前将其转换为字符串。 – 2014-10-13 20:46:29