0

グループ メンバーが Google アカウントでない場合、新しい Directory API を使用してグループ メンバーを削除できないことがわかりました。Dito GAM (私は GAM の作成者です) と Google API Explorer の両方でこれをテストしました。

削除するメンバーが Google アカウントの場合、操作は正しく機能します。

C:\gam-64>gam update group group99@jay.powerposters.org remove google-user@jay.powerposters.org
 removing google-user@jay.powerposters.org
connect: (www.googleapis.com, 443)
send: 'DELETE /admin/directory/v1/groups/group99@jay.powerposters.org/members/google-user@jay.powerposters.org?quotaUser=1ee51612c9a0220af0cf5516a990b206e2a619e8&prettyPrint=true
HTTP/1.1
Host: www.googleapis.com
content-length: 0
authorization: Bearer <valid access token>
accept-encoding: gzip, deflate
accept: */*
user-agent: Dito GAM 3.01 / jay@ditoweb.com (Jay Lee) / Python 2.7.5 final / Windows-7-6.1.7601-SP1 AMD64 / google-api-python-client/1.2 (gzip)

reply: 'HTTP/1.1 204 No Content
header: Cache-Control: no-cache, no-store, max-age=0, must-revalidate
header: Pragma: no-cache
header: Expires: Fri, 01 Jan 1990 00:00:00 GMT
header: Date: Wed, 28 Aug 2013 12:57:06 GMT
header: ETag: "cZnI-gy4eI-n1-_cqk7okAteLZk/vyGp6PvFo4RvsFtPoIWeCReyIC8"
header: Server: GSE

これは予期される動作です。ただし、削除するアカウントが Google アカウント (Google Apps または一般ユーザー) でない場合は、次のエラーが返されます。

C:\gam-64>gam update group group99@jay.powerposters.org remove not-a-google-account@not-a-google-domain.com
 removing not-a-google-account@not-a-google-domain.com
connect: (www.googleapis.com, 443)
send: 'DELETE /admin/directory/v1/groups/group99@jay.powerposters.org/members/not-a-google-account@not-a-google-domain.com?quotaUser=1ee51612c9a0220af0cf5516a990b206e2a619e8&prettyPrint=true
HTTP/1.1
Host: www.googleapis.com\r\ncontent-length: 0
authorization: Bearer <valid oauth 2.0 token>
accept-encoding: gzip, deflate
accept: */*
user-agent: Dito GAM 3.01 / jay@ditoweb.com (Jay Lee) / Python 2.7.5 final / Windows-7-6.1.7601-SP1 AMD64 / google-api-python-client/1.2 (gzip)
reply: 'HTTP/1.1 400 Bad Request
header: Content-Type: application/json; charset=UTF-8
header: Content-Encoding: gzip
header: Date: Wed, 28 Aug 2013 13:00:02 GMT
header: Expires: Wed, 28 Aug 2013 13:00:02 GMT
header: Cache-Control: private, max-age=0
header: X-Content-Type-Options: nosniff
header: X-Frame-Options: SAMEORIGIN
header: X-XSS-Protection: 1; mode=block
header: Content-Length: 122
header: Server: GSE

body: {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "badRequest",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}

Error 400: Bad Request - badRequest

これと同じ動作が Google API Explorer でも見られることに注意してください。

http://screencast.com/t/fQZCnMYYs

https://developers.google.com/apis-explorer/#s/admin/directory_v1/directory.members.delete?groupKey=group99%2540jay.powerposters.org&memberKey=not-a-google-account%2540not-a-google -domain.com&_h=1&

Directory API を使用して、Google グループから任意のアドレスを削除できる必要があります。

4

3 に答える 3

1

これについて Google Enterprise サポートと話しましたが、彼らはこれがバグであることを認めました (Silvano がここにいるように)。開発チームと話し合ったところ、回避策として、メール アドレスの代わりにユーザーの ID を使用して削除することができるとのことでした。

メンバー ID を使用してすべてのメンバーを削除する方法の簡単な例。

Directory directory = 
    new Directory.Builder(httpTransport, jsonFactory, credentials)
                 .setApplicationName(APPLICATION_NAME)
                 .build(); 
Members members = directory.members().list(groupKey).execute();
for(Member member : members.getMembers()) {
    String memberId = member.getId();
    Delete delete = directory.members().delete(groupKey, memberId);
    delete.execute();
}

彼らが修正をリリースできるまで、これが役立つことを願っています.

于 2013-09-26T17:11:49.067 に答える