1

プロファイル API からディレクトリ API にスクリプトを移行しようとしています。その目的は、includeInGlobalAddressList 属性を使用して、特定の Google Apps ドメイン ユーザーの連絡先情報の可視性を管理することです。

ユーザー オブジェクトを取得でき、パッチ リクエストを送信できますが、変更は行われません。patch メソッドから返されたオブジェクトには、includeInGlobalAddressList の元の値があります。API ドキュメントには etags へのあいまいな参照がいくつかありますが、etag がパッチ本体に含まれているのか、それとも If-Match ヘッダーとして含まれているのかは明確ではありません。(それに対する答えが If-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 を使用または渡さなくても発生します。

4

1 に答える 1