25 de fevereiro de 20263 min de leitura

Superando limitações: Como acessar pastas compartilhadas do OneDrive no Azure Logic Apps

(autor não identificado)

Azure

Banner - Superando limitações: Como acessar pastas compartilhadas do OneDrive no Azure Logic Apps

O desafio técnico

Em fluxos de automação corporativa, é comum a necessidade de mover arquivos de uma pasta do OneDrive, compartilhada por um colega, para outro serviço de storage, como o Microsoft SharePoint ou o Azure Blob Storage, utilizando o Azure Logic Apps.

No entanto, ao utilizar a ação "List files in folder" do conector de OneDrive for Business, os times de engenharia frequentemente encontram uma limitação frustrante: o folder picker (seletor de pastas) exibe apenas o diretório raiz e as subpastas da conta do usuário autenticado. Pastas compartilhadas, apesar de acessíveis via interface web do OneDrive, simplesmente não são listadas. Isso gera o falso diagnóstico de que o conector não suporta esse cenário, o que, na prática, é contornável.

Logic app's "List files in folder" action from OneDrive for business connector showing list of folders while when clicked on the file picker icon

Por que isso acontece?

O conector de OneDrive for Business é desenhado com um escopo de contexto de usuário. Ele enumera apenas os diretórios vinculados diretamente à unidade do usuário conectado. As pastas que aparecem na seção “Shared with me” (Compartilhado comigo) possuem uma estrutura lógica diferente: elas residem em uma unidade distinta (com um driveId próprio) e, por isso, não são injetadas automaticamente no seletor padrão do conector.

Soluções técnicas

Existem dois caminhos para resolver essa limitação no seu fluxo de trabalho:

Opção 1: Uso da API do Microsoft Graph (Permissões Delegadas)

Você pode invocar o Microsoft Graph diretamente. Este método envolve configurar o HTTP with Microsoft Entra ID (preauthorized), utilizando permissões delegadas em nome do usuário autenticado. Embora seja uma abordagem robusta e profissional, ela adiciona complexidade ao projeto, exigindo configurações específicas no Entra ID e, possivelmente, fluxos de consentimento de administrador.

📘 Referência: HTTP with Microsoft Entra ID (preauthorized) - Connectors | Microsoft Learn

Opção 2: Descoberta de Metadados via Graph Explorer

Uma alternativa mais prática em cenários de desenvolvimento rápido é utilizar o Graph Explorer para capturar o metadata da pasta e preencher a ação do OneDrive manualmente:

  1. No Graph Explorer, execute o request: GET https://graph.microsoft.com/v1.0/{username-do-proprietario}/drive/root/children.
  2. Identifique na resposta o parentReference.driveId e o id (folder ID) da pasta compartilhada.
  3. No seu Logic App, ao configurar o "List files in folder", não utilize o seletor visual. Insira manualmente a string no formato: {driveId}.{folderId}.

Graph explorer snippet showing the request sent to the API to list the files & folders shared by a specific user on the root drive

Troubleshooting: A estratégia de Network Tracing

Caso o Graph Explorer não retorne os dados esperados, utilize o Network Tracing do seu navegador:

  1. Acesse a pasta compartilhada via browser.
  2. Abra as Ferramentas de Desenvolvedor (F12) e monitore a aba Network.
  3. Capture o CurrentFolderUniqueId (ID da pasta) e o driveId (extraído da CurrentFolderSpItemUrl).

Este método serve como um fallback seguro para garantir que a sua automação mantenha a estabilidade necessária sem depender da resolução via seletor padrão, garantindo a eficiência operacional da sua integração.


Artigo originalmente publicado em Azure Updates - Latest from Azure Charts.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset