2

我正在使用 Google Admin SDK,特别是 Directory API 来更改我组织中用户目录信息的信息。我正在尝试使用 Google 提供的 Py 库在 Python 中编写一个简单的实用程序应用程序。为用户添加和修改信息似乎工作得很好,我遇到的问题是当我试图删除各种信息时。

例如,我必须向具有各种属性的用户添加“组织”的功能是:

def setOrgAttr(userKey, org, attr, value):

    global http, directory
    user = directory.users().get(userKey=userKey).execute(http=http)
    if u'organizations' in user:
        for orgIn in user[u'organizations']:
            if orgIn[u'name'] == org:
            orgIn[attr] = value
            else:
                user[u'organizations'].append({u'name':org,attr:value})
    else:
        user[u'organizations'] = [{u'name':org,attr:value}]

    directory.users().update(userKey=userKey,body=user).execute(http=http)

这很好用,但删除效果不太好。我已经尝试使用他们的 API 参考页面https://developers.google.com/admin-sdk/directory/v1/reference/#UsersPUT上显示的和方法,但似乎都不起作用。我还尝试只发送修改后的 JSON 与整个用户对象,但都不起作用。这是我的删除功能:PATCH

def deleteOrg(userKey, org):

    global http, directory
    user = directory.users().get(userKey=userKey).execute(http=http)
    for (i, orgIn) in enumerate(user[u'organizations']):
        if orgIn[u'name'] == org:
            user[u'organizations'].pop(i)

    directory.users().patch(userKey=userKey,body=user).execute(http=http)

最后,在这里查看上下文中的所有内容是一个 Gist,它向我展示了整个应用程序。

https://gist.github.com/twhitney11/5f431c958aa822dc5ea5

我应该注意,调试请求确实表明我在将 JSON 对象发送到他们的 API 之前从 JSON 对象中删除了该组织。

4

1 回答 1

0

将最后一行更改为:

modified_user = directory.users().patch(userKey=userKey,body=user).execute(http=http)

看看 modified_user['organizations'] 是什么样子。对用户丰富的个人资料信息(如组织)的更改可能需要 4 小时或更长时间才能反映在 Gmail 联系人界面中。

于 2014-01-02T14:07:06.907 回答