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

リクエストをデバッグすると、API に送信する前に JSON オブジェクトから組織を削除していることがわかります。

4

1 に答える 1

0

最後の行を次のように変更します。

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

modified_user['organizations'] がどのように見えるかを確認してください。ユーザーの豊富なプロファイル情報 (組織など) への変更が Gmail の連絡先インターフェースに反映されるまでに 4 時間以上かかる場合があります。

于 2014-01-02T14:07:06.907 に答える