onedrive-bastech

n8n node for OneDrive integration with search capabilities

Package Information

Downloads: 4 weekly / 83 monthly
Latest Version: 1.2.7
Author: BASTECH

Documentation

n8n-nodes-onedrive

Um node customizado para n8n que permite integração com OneDrive da Microsoft, oferecendo funcionalidades de busca de arquivos e pastas.

Funcionalidades

Este node oferece as seguintes operações:

📁 Search Folder

  • Busca por pastas no OneDrive usando uma query de pesquisa
  • Filtros automáticos para retornar apenas pastas

📄 Search File

  • Busca por arquivos em todo o OneDrive usando uma query de pesquisa
  • Filtros automáticos para retornar apenas arquivos

🔍 Search File in Folder

  • Busca por arquivos dentro de uma pasta específica
  • NOVO: Seleção visual de pastas com lista dinâmica das pastas disponíveis
  • Permite especificar o ID da pasta manualmente ou através de expressões
  • Interface amigável com hierarquia de pastas
  • Útil para buscas direcionadas em locais específicos

Configuração

1. Pré-requisitos

  • Uma conta Microsoft com acesso ao OneDrive
  • Um aplicativo registrado no Azure AD com as permissões necessárias

2. Registro do Aplicativo no Azure

  1. Acesse o Azure Portal
  2. Vá para "Azure Active Directory" > "App registrations"
  3. Clique em "New registration"
  4. Configure:
    • Name: n8n-onedrive-integration
    • Supported account types: Accounts in any organizational directory and personal Microsoft accounts
    • Redirect URI: https://your-n8n-instance.com/rest/oauth2-credential/callback

3. Configuração de Permissões

No seu app registrado, vá para "API permissions" e adicione:

  • Microsoft Graph:
    • Files.Read - Ler arquivos do usuário
    • Files.ReadWrite - Ler e escrever arquivos do usuário
    • Files.Read.All - Ler todos os arquivos
    • Files.ReadWrite.All - Ler e escrever todos os arquivos
    • Sites.Read.All - Ler sites
    • offline_access - Manter acesso aos dados

4. Obter Credenciais

  1. Vá para "Certificates & secrets"
  2. Clique em "New client secret"
  3. Anote o Client ID (Application ID) e Client Secret

5. Configurar no n8n

  1. No n8n, vá para Credentials
  2. Clique em Add Credential
  3. Selecione OneDrive API
  4. Preencha:
    • Client ID: O Application ID do Azure
    • Client Secret: O secret criado no Azure
  5. Clique em Save e depois em Connect my account
  6. Complete o fluxo OAuth2

Uso

Buscar Arquivos Globalmente

{
  "resource": "file",
  "operation": "search",
  "query": "relatório mensal",
  "additionalFields": {
    "limit": 10,
    "orderby": "lastModifiedDateTime",
    "orderDirection": "desc"
  }
}

Buscar Pastas

{
  "resource": "folder",
  "operation": "search",
  "query": "projetos 2024",
  "additionalFields": {
    "limit": 5,
    "select": "id,name,createdDateTime"
  }
}

Buscar Arquivos em Pasta Específica

Método 1: Seleção Visual (NOVO)

{
  "resource": "file",
  "operation": "searchInFolder",
  "folderSelectionMethod": "list",
  "folderId": {
    "mode": "list",
    "value": "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K"
  },
  "query": "*.pdf",
  "additionalFields": {
    "limit": 20,
    "orderby": "size",
    "orderDirection": "desc"
  }
}

Método 2: ID Manual

{
  "resource": "file",
  "operation": "searchInFolder",
  "folderSelectionMethod": "manual",
  "folderIdManual": "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K",
  "query": "*.pdf",
  "additionalFields": {
    "limit": 20,
    "orderby": "size",
    "orderDirection": "desc"
  }
}

🆕 Novidades da Versão 1.2.0

🗂️ Navegação Hierárquica Completa

  • Navegação profunda: Navegue através de toda a estrutura de pastas
  • Breadcrumbs visuais: Veja o caminho atual com indicadores de localização
  • Botão "Go Up": ⬆️ Volte facilmente para pastas superiores
  • Seleção intuitiva: Opções com "✅ Select:" para escolher a pasta atual
  • Separadores visuais: Interface organizada com separadores claros

Interface de Navegação

  • 📁 Folder Name →: Navegar para dentro da pasta
  • ⬆️ .. (Go Up): Voltar para pasta pai
  • ✅ Select: Current Path: Selecionar pasta atual para busca
  • ─────── Navigate to ───────: Separador visual

Funcionalidades da v1.1.0 (Mantidas)

  • Interface amigável: Dropdown com navegação hierárquica
  • Busca inteligente: Campo de busca para filtrar pastas por nome
  • Hierarquia visual: Pastas mostradas com ícones 📁 para fácil identificação
  • Pasta raiz incluída: Opção "📁 Root (OneDrive)" para buscar na raiz
  • Fallback robusto: Mantém a opção de inserir ID manualmente

Métodos de Seleção

  1. "Select from List" (Padrão): Navegação hierárquica visual
  2. "Enter ID Manually": Inserção direta do ID (para automação)

Parâmetros Adicionais

Campos Opcionais

  • Limit: Número máximo de resultados (1-1000, padrão: 50)
  • Select: Campos específicos a retornar (ex: "id,name,size")
  • Order By: Campo para ordenação (name, size, lastModifiedDateTime, createdDateTime)
  • Order Direction: Direção da ordenação (asc, desc)

Exemplos de Queries

  • Busca por extensão: *.pdf, *.docx, *.xlsx
  • Busca por nome: relatório, apresentação
  • Busca por conteúdo: texto dentro do arquivo
  • Busca combinada: relatório AND 2024

Instalação

Via npm (Quando publicado)

npm install n8n-nodes-onedrive

Desenvolvimento Local

  1. Clone o repositório:
git clone <repository-url>
cd n8n-onedrive
  1. Instale as dependências:
npm install
  1. Compile o projeto:
npm run build
  1. Link para uso local no n8n:
npm link
  1. No diretório do n8n:
npm link n8n-nodes-onedrive

Estrutura de Resposta

O node retorna os dados no formato padrão do Microsoft Graph API:

{
  "id": "01BYE5RZ6QN3ZWBTUFOFD3GSPGOHDJD36K",
  "name": "documento.pdf",
  "size": 1024768,
  "createdDateTime": "2024-01-15T10:30:00Z",
  "lastModifiedDateTime": "2024-01-15T14:45:00Z",
  "webUrl": "https://onedrive.live.com/...",
  "downloadUrl": "https://...",
  "file": {
    "mimeType": "application/pdf"
  },
  "parentReference": {
    "driveId": "b!...",
    "id": "01BYE5RZ5N6YDVSSSLNJGZA23EEWRWP2JK"
  }
}

Troubleshooting

🚨 Problemas de Autenticação

"Authorization failed - please check your credentials"

Passo 1: Verificar Azure AD Configuration

# No Azure Portal (https://portal.azure.com):
1. Azure Active Directory > App registrations
2. Encontre seu app: n8n-onedrive-integration
3. Verifique informações básicas

Passo 2: Verificar Redirect URI (Problema #1 mais comum)

# Azure Portal > App registration > Authentication
✅ CORRETO: https://seu-n8n.com/rest/oauth2-credential/callback
❌ ERRADO:  http://localhost:5678/rest/oauth2-credential/callback
❌ ERRADO:  URLs diferentes entre Azure e n8n

Passo 3: Verificar Client Secret (Problema #2 mais comum)

# Azure Portal > App registration > Certificates & secrets
1. Verifique se o secret não expirou
2. Se expirou: Delete old secrets > New client secret
3. Copie o VALUE (não o Secret ID)
4. Cole no n8n > Credentials > Client Secret

Passo 4: Verificar Permissões

# Azure Portal > App registration > API permissions
Microsoft Graph - Delegated permissions:
✅ Files.Read
✅ Files.ReadWrite
✅ Files.Read.All
✅ Files.ReadWrite.All
✅ Sites.Read.All
✅ offline_access

# Depois de adicionar: Grant admin consent for [Tenant]

Passo 5: Verificar Credenciais no n8n

# n8n > Credentials > OneDrive API
Client ID: [Application ID do Azure]
Client Secret: [VALUE do secret (não Secret ID)]

# Teste: Connect my account
# Deve abrir janela Microsoft OAuth

Problemas Específicos por Tipo de Conta

Conta Pessoal (@outlook.com, @hotmail.com, @gmail.com)

  • Funciona direto após configuração
  • Sem necessidade de aprovação admin

Conta Corporativa (@empresa.com)

  • Pode precisar de aprovação do admin
  • Verificar se admin deu consentimento
  • Confirmar se usuário tem permissões OneDrive

Tenant Específico

  • Verificar se app está no tenant correto
  • Confirmar supported account types no Azure

🔧 Erros Comuns da API

401 Unauthorized

  • Token OAuth2 expirou → Reconectar credenciais
  • Client ID/Secret incorretos → Verificar no Azure
  • Permissões insuficientes → Verificar API permissions

403 Forbidden

  • Sem permissão para pasta específica
  • Admin não deu consentimento (conta corporativa)
  • Verificar se usuário tem OneDrive ativo

404 Not Found (Folder ID)

  • ID da pasta incorreto/expirado
  • Pasta foi movida ou deletada
  • Use "Select from List" para navegação visual
  • Teste com "Get Folder Info" para validar ID

🛠️ Ferramentas de Diagnóstico

1. Teste de Credenciais

# n8n > Credentials > OneDrive API > Test
Sucesso: "Authentication successful! OneDrive connection verified."
Erro: Mensagem específica do problema

2. Get Folder Info (Novo na v1.2.1)

# Resource: Folder
# Operation: Get Folder Info
# Folder ID: [ID para validar]
# Retorna: Diagnóstico completo do ID

3. Navegação Visual (Recomendado)

# Resource: File
# Operation: Search in Folder
# Method: Select from List
# Navegar até pasta desejada

Obtendo Folder IDs

Para obter o ID de uma pasta, use primeiro a operação "Search Folder":

  1. Configure: Resource = "folder", Operation = "search"
  2. Digite o nome da pasta na query
  3. O resultado conterá o "id" que pode ser usado na busca de arquivos

Contribuição

Para contribuir com este projeto:

  1. Fork o repositório
  2. Crie uma branch para sua feature
  3. Faça commit das mudanças
  4. Abra um Pull Request

Licença

MIT License - veja o arquivo LICENSE para detalhes.

Suporte

Para suporte e dúvidas:

Discussion