2012-09-24 9 views
5

Estoy desarrollando una aplicación que debería proporcionarle al administrador de Google Apps la posibilidad de reasignar la propiedad de los archivos. Actualmente estoy usando Google Drive SDK para .NET con código C#.Actualización del SDK de Google Drive (eliminar/insertar) Permiso del propietario 500 Error en Try It Demo

Cuando autentico en la demo de prueba de Google Drive SDK en https://developers.google.com/drive/v2/reference/permissions/insert y rellenar el FileId de un fichero propiedad de la administración y tratar de insertar otro propietario del mismo dominio de Google Apps me sale un error de servidor interno 500. Estoy usando estos valores:

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

Content-Type: application/json 
Authorization: Bearer {MY_ACCESSTOKEN} 
X-JavaScript-User-Agent: Google APIs Explorer 

{ 
"role": "owner", 
"type": "user", 
"value": "[email protected]" 
} 

El "Inténtalo" demostración me ponen a prueba con los alcances

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file

    hacer esta operación.

soy capaz de obtener una lista de los permisos en el archivo utilizando el Inténtalo de demostración autenticado como el mismo usuario administrador, pero no soy capaz de insertar de permisos de propietario de eliminación.

Elegí el SDK de Google Drive porque es más reciente y la API de Google Docs simplemente estaba privada, pero estaría dispuesto a utilizar la herramienta que fuera la mejor para actualizar la propiedad. Solo estoy buscando el camino más directo hacia ese objetivo.

¿Alguien ha hecho funcionar la actualización de propiedad? Si es así, ¿qué herramienta usaste?

Respuesta

1

Presenté un error interno para que nuestros ingenieros lo investiguen, sin embargo, solo logré reproducir el problema cuando trato de compartirlo con un usuario de un dominio externo y no con uno del mismo dominio.

Los administradores de dominio de Google Apps pueden evitar que sus usuarios cambien la propiedad a usuarios externos, pero en ese caso la API no debe devolver un 500 y en su lugar falla con un mensaje de error descriptivo.

Voy a actualizar esta respuesta tan pronto como escuché de nuestra investigación.

+0

Para que quede claro, el otro usuario al que intento transferir la propiedad está dentro del mismo dominio de Google Apps. Me preguntaba si es porque es 'owner'ship el que intento transferir. Si no soy el 'propietario' del documento, pero soy el administrador del dominio, debería poder hacerlo, ¿no? En la API de Google Docs, tendría que suplantar al 'propietario'. Los documentos de Google Drive parecen implicar que esto es posible para los administradores de dominio. –

+0

El error parece deberse al hecho de que la API está intentando eliminar al único propietario del archivo (y luego crear un nuevo propietario).Como solución alternativa, ¿puede verificar si el error todavía ocurre si 1) comparte el documento con el otro usuario como escritor y luego 2) configura al otro usuario como propietario? –

+0

He estado obteniendo el error 500 al agregar una función 'owner' para un usuario que ya era un' escritor'. Así que eso fue al agregar un segundo propietario que era escritor. También lo tengo cuando trato de eliminar al único propietario para prepararme para agregar un nuevo propietario. Ahora, solo a través de la página web de prueba "Pruébalo", cuando uso la actualización de permisos con '{" role ":" owner "}', y esto es para un usuario que ya es escritor, sigo teniendo el Error 500. Probé el parche también con los mismos resultados. ¿Este proceso funciona para otras personas? ¿Podría ser alguna configuración en mi dominio? –

0

usando la bandera de transferOwnership resolvió el problema para mí.

de cliente Python API, que puede hacer:

service.permissions().patch(
     fileId=doc.drive_id, permissionId=permission_id, 
     body=patched_permission, transferOwnership=True).execute() 
0

He conocido el mismo problema hace varios meses. Y lo reintenté ayer y parece funcionar ahora. Parece que el ingeniero de Google ya solucionó el problema.

Espero que empiece a funcionar para usted también.

Cuestiones relacionadas