es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma de abrir una carpeta específica en el selector de archivos de OneDrive para JavaScript v7.2?

Estoy tratando de usar el selector de archivos de OneDrive para JavaScript v7.2: https://learn.microsoft.com/en-us/onedrive/developer/controls/file-pickers/js-v72/open-file?view=odsp-graph-online

En la carga de la ventana del selector de archivos, obtengo una lista de mis archivos y carpetas de OneDrive, que incluyen mi carpeta de GRABACIONES.
Me gustaría lograr lo siguiente:
1. Abrir automáticamente esta carpeta en la carga de la ventana del selector de archivos, en lugar de seleccionarla de la lista de carpetas.
2. Mostrar grabaciones de conversaciones en pestañas de equipos (Sharepoint) y no solo de las pestañas de chat (OneDrive).

Entiendo que podría ser posible utilizando la API de búsqueda de elementos (https://learn.microsoft.com/en-us/graph/api/driveitem-search?view=graph-rest-1.0&tabs=http), pero me gustaría ahorrarme el esfuerzo de crear la interfaz del selector de archivos.

Gracias

Tags:  ,

Answer

  1. Avatar for davy.ai

    Gracias por contactarnos con tus preguntas. Aquí tienes algunas sugerencias que podrían ayudarte a alcanzar tus objetivos:

    1. Para abrir automáticamente una carpeta específica al cargar la ventana de selección de archivos, puedes usar la propiedad defaultSaveFolder en el objeto de opciones que se pasa al método OneDrive.open. Por ejemplo:
    var options = {
      clientId: '<tu-id-de-cliente>',
      action: 'share',
      sourceTypes: ['file', 'folder'],
      defaultSaveFolder: '/RECORDINGS',
    };
    
    OneDrive.open(options);
    

    Esto abrirá el selector de archivos de OneDrive con la carpeta RECORDINGS ya seleccionada.

    1. Para mostrar grabaciones de las conversaciones de pestañas de Teams además de la pestaña de chat (OneDrive), puedes utilizar el método search de la API de Microsoft Graph. Primero deberás autenticar al usuario y obtener un token de acceso con los permisos necesarios para acceder a los datos de Teams del usuario.

    Luego, puedes utilizar el método search para buscar grabaciones utilizando un parámetro de consulta específico. Aquí tienes un ejemplo:

    var accessToken = '<tu-token-de-acceso>';
    
    var graphEndpoint = 'https://graph.microsoft.com/v1.0';
    
    var query = "fileType = 'm4a' and (parentReference/name = 'Channel')";
    
    var headers = new Headers();
    headers.append('Authorization', 'Bearer ' + accessToken);
    
    var options = {
      method: 'GET',
      headers: headers,
    };
    
    var url = graphEndpoint + '/me/drive/root/search(q=\'' + query + '\')?$select=id,webUrl,name,createdDateTime,lastModifiedDateTime';
    
    fetch(url, options)
      .then(function(response) {
        return response.json();
      })
      .then(function(data) {
        console.log(data);
      })
      .catch(function(error) {
        console.log(error);
      });
    

    Este ejemplo busca todos los archivos de tipo “m4a” que se encuentran en una carpeta llamada “Channel”. Puedes ajustar el parámetro de consulta según tus necesidades específicas.

    Espero que esto te ayude. Déjame saber si tienes alguna pregunta adicional.

Comments are closed.