4

Google ドライブのファイルを共有するには、次の方法があります。

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;

}

変数 commenter が false の場合 (追加の役割は設定しません) はすべて正常に機能しますが、ユーザーに「リーダー」と「コメント者」の役割を持たせたい場合は、次のエラーが発生します。

    エラーが発生しました: com.google.api.client.googleapis.json.GoogleJsonResponseException: 500 内部サーバー エラー
    {
        「コード」:500、
        「エラー」: [ {
            「ドメイン」:「グローバル」、
            "メッセージ": "内部エラー",
            「理由」:「内部エラー」
        } ]、
        "メッセージ": "内部エラー"
    }

この種の問題を経験した人はいますか?

4

1 に答える 1

1

渡されたidフィールドが正しくない場合、この種のエラーが発生しました。奇妙なエラー コードです。ここでは 4XX のようなものが適していると思います (500 ではありません)。

100%再現可能。

リクエスト:

POST https://www.googleapis.com/drive/v2/files/0B28tlN6SgYRaNVRFRENpRFN3bGs/permissions?key={YOUR_API_KEY}


{
 "role": "reader",
 "type": "user",
 "id": "16887416236869940585"
}

応答:

500 Internal Server Error

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

Google ドライブ API のエラー メッセージが (500 内部サーバー エラー) よりも有益であることを願っています。

于 2014-10-16T13:13:37.107 に答える