Incapaz de abrir un documento usando DocumentApp.openById() en google app script
Estoy tratando de crear una copia de un documento de plantilla y editar un texto en él usando el siguiente código:
const destinationFolder = DriveApp.getFolderById(folderId) //folder where to save the document
const copy = templateDoc.makeCopy(customDocName.toString(), destinationFolder); //make a copy of the template document
const doc = DocumentApp.openById(copy.getId()) //open the copy
const body = doc.getBody();
//update the template with data
body.replaceText('', 'replacementText');
body.replaceText('', 'replacementText');
Soy capaz de crear una copia del documento, renombrarlo y guardarlo en la carpeta especificada. Estoy recibiendo el siguiente error en la línea 3 : Excepción: El documento es inaccesible. Por favor, intente de nuevo más tarde.
He buscado las soluciones y he probado todo menos nada funcionó.
Aquí está todo lo que he probado:
- Iniciar sesión de nuevo
- Habilitado para todos los recursos pertinentes
- Movedo el script de aplicación bajo un proyecto GCP como alguien sugirió que ya no podemos acceder a un doc directamente desde el script de aplicación.
- Activado todos los api relevantes en GCP
Pregunta hecha hace 3 años, 5 meses, 5 días - Por daniel1
3 Respuestas:
-
El problema fue con la plantilla Doc como era Microsoft Word Document(.docx). Cuando creé un Google Doc y lo mencionó como el doc de plantilla que funcionó muy bien. Gracias por toda su ayuda :)
Respondida el Dec 18, 2020 a las 10:53 - por pixelpioneerb898
Votos positivos: 0 | Votos negativos: 0 -
El error "El documento es inaccesible. Por favor, intente de nuevo más tarde." que estás experimentando puede deberse a varios motivos. Aquí te dejo algunas posibles soluciones que podrías probar:
- Tiempo de espera: Asegúrate de que el documento se ha creado y guardado completamente antes de intentar abrirlo. Puedes añadir una pausa corta antes de intentar abrirlo para dar tiempo al sistema a procesar el documento.
javascript Utilities.sleep(5000); // Espera 5 segundos
- Permisos de Google Drive: Verifica que el script tenga los permisos adecuados para acceder a los documentos en Google Drive. Asegúrate de que el script esté siendo ejecutado con la cuenta que tiene acceso al documento y a la carpeta donde se está guardando.
- Permisos adicionales: Si el documento es compartido con otras cuentas de Google, asegúrate de que el script tenga permisos para acceder a esos documentos compartidos.
- Probar el ID directamente: Intenta abrir el documento utilizando el ID directamente para asegurarte de que el problema no sea con la copia del documento.
javascript const docId = 'ID_DEL_DOCUMENTO_COPIADO'; const doc = DocumentApp.openById(docId);
- Depuración detallada: Para obtener más detalles sobre el error, puedes agregar un bloque `try-catch` alrededor de la apertura del documento y luego imprimir más información sobre el error en caso de que se produzca.
Espero que alguna de estas soluciones te ayude a resolver el problema. Si el problema persiste, no dudes en consultar nuevamente.
Respondida el Dec 19, 2020 a las 10:53 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
Solución:
El error "El Documento es Inaccesible" generalmente ocurre cuando no tienes los permisos necesarios para acceder al Documento de Google. Para solucionarlo, intenta lo siguiente:
- Verificar Permisos: Asegúrate de que la cuenta de servicio que está ejecutan el script tenga permisos de lectura y escritura para el Documento de Google que intentas editar.
- Actualizar API: Compara la lista de API habilitadas en tu proyecto de GCP con las API necesarias para DriveApp en los documentos de Google App Script. Habilita cualquier API que falte.
- Deshabilitar la Prevención de Pérdida de Datos (DLP): Si DLP está habilitada en tu cuenta de Google, puede bloquear el acesso a algunos tipos de información en los Documentos de Google. Intenta deshabilitar DLP para ver si resuelve el problema.
- Revisar el ID del Documento: Asegúrate de que el `copy.getId()` que se está utilizando para `DocApp.openById()` sea el ID correcto del Documento de Google que deseas editar.
- Copiar en Lugar de Mover: En lugar de mover el Documento de la plantilla a la carpeta de destimo, intenta crear una copia del Documento de la plantilla y guardarlo directamente en la carpeta de destimo.
- Esperar unos Momentos: A veces, puede llevar unos minutos para que los permisos se apliquen después de realizar cambio. Intenta esperar unos minutos e intenta de nuevo.
Ejemplo de Código:
Si todo lo anterior no resuelve el problema, puedes probar el siguiente ejemplo de Código para copiar y editar un Documento de Google:
function copyAndEditDocument() { const templateId = 'YOUR_TEMPLATE_DOCUMENT_ID'; const destinationFolderId = 'YOUR_DESTINATION_CARET_ID'; const copyName = 'Custom Document Name' const templateDoc = DriveApp.getFileById(templateId); const copy = templateDoc.makeCopy(copyName, DriveApp.getFolderById(destinationFolderId)); const copyId = copy.getId(); const doc = DocumentApp.openById(copyId) const body = doc.getBody(); // Update the document with data body.replaceText '
', 'replacementText'); body.replaceText ' ', 'replacementText'); // Save and close the document doc.saveAndClose(); } Nota:
Reemplaza
YOUR_TEMPLATE_DOCUMENT_ID
con el ID del Documento de la plantilla. ReemplazaYOUR_DESTINATION_CARET_ID
con el ID de la carpeta de destimo donde deseas guardar el Documento copiado.- Reemplaza `copyName` con el nombre que deseas darle al Documento copiado.
Espero que esto resuelva tu problema.
Respondida el Dec 19, 2020 a las 11:03 - por Gemini
Votos positivos: 0 | Votos negativos: 0