I have the next method to share Google Drive files:
public static boolean shareFile(HttpServletRequest httpReq, String fileId, String user, String rol, boolean commenter) {
Drive service = getService(httpReq) ;
if (service != null){
Permission newPermission = new Permission();
newPermission.setValue(user);
newPermission.setType("user");
newPermission.setRole(rol);
if (commenter)
newPermission.setAdditionalRoles(Arrays.asList("commenter"));
try {
service.permissions().insert(fileId, newPermission).execute();
return true;
} catch (Exception e) {
System.out.println("An error occured: " + e);
}
}
return false;
}
Everything works fine when variable commenter is false (we don't set addiotional roles), but if I want a user to have role "reader" and "commenter" I get the next error:
An error occured: com.google.api.client.googleapis.json.GoogleJsonResponseException: 500 Internal Server Error { "code" : 500, "errors" : [ { "domain" : "global", "message" : "Internal Error", "reason" : "internalError" } ], "message" : "Internal Error" }
Did anyone experience with this kind of problem?