Google ドキュメントの ACL の更新に問題があります。ドキュメントを一部のユーザーと共有したいのですが、COMMENTER 権限のみを許可します。コードは次のとおりです。
Eclipse は AclRole.COMMENTER が有効なタイプであることを教えてくれますが、コードを実行すると次の例外が発生します: Service Exception: The posted entry has an invalid value for the field(s): role
これを AclRole.READER に変更すると、正常に動作します。
ということで、ちょっと調べてみようと思いました。「共有」を介して Google ドキュメントからの COMMENTER アクセスを設定できます。だから私はそれをして、次の方法でドキュメントのACLを読みました:
AclFeed feed = getDservice().getFeed(new URL(doc.getAclFeedLink().getHref()),AclFeed.class);
if (feed == null)
System.out.println("Feed is null");
else {
for (AclEntry a: feed.getEntries()) {
System.out.println("acl role:" + a.getRole().getValue());
System.out.println("acl scope:" + a.getScope().getValue());
}
}
COMMENTER アクセス権を持つ user1 と READER アクセス権を持つ user2 の出力は次のとおりです。
acl ロール:リーダー acl スコープ:user1@domain.com
acl ロール:リーダー acl スコープ:user2@domain.com
したがって、user1 が明示的に COMMENTER であっても、「読者」として報告されています。
AclRole のオンライン ドキュメントにアクセスすると、COMMENTER 列挙はありません (https://developers.google.com/gdata/javadoc/com/google/gdata/data/acl/AclRole)。
では、コメントのみの権限の ACL を設定するにはどうすればよいでしょうか。明らかに Google Docs でサポートされており、Eclipse は私が使用している GData jar からそれを取得しています。
私は何が欠けていますか?