Java permissions for Google Drive Java 500 Internal error

I have the following method for sharing 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 the commenter variable is false (we do not set the add-on roles), but if I want the user to have the role of “reader” and “commentator”, I get the following 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"
     }

Has anyone encountered similar problems?

+4
source share
1 answer

I got this error if the id field is incorrect. Strange error code, I think something like 4XX is more suitable here (not 500).

100% reproducible.

Request:

 POST https://www.googleapis.com/drive/v2/files/0B28tlN6SgYRaNVRFRENpRFN3bGs/permissions?key={YOUR_API_KEY} { "role": "reader", "type": "user", "id": "16887416236869940585" } 

Answer:

 500 Internal Server Error { "error": { "errors": [ { "domain": "global", "reason": "internalError", "message": "Internal Error" } ], "code": 500, "message": "Internal Error" } } 

The reliability of the Google Drive API error messages will be more informative than (500 Internal Server Error).

+1
source

All Articles