mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-04-19 17:32:38 +00:00
* docs: add missing integration actions from OAuth config Sync enterprise integration docs with crewai-oauth apps.js config. Adds ~96 missing actions across 9 integrations: - Google Contacts: 4 contact group actions - Google Slides: 14 slide manipulation/content actions - Microsoft SharePoint: 27 file, Excel, and Word actions - Microsoft Excel: 2 actions (get_used_range_metadata, get_table_data) - Microsoft Word: 2 actions (copy_document, move_document) - Google Docs: 27 text formatting, table, and header/footer actions - Microsoft Outlook: 7 message and calendar event actions - Microsoft OneDrive: 5 path-based and discovery actions - Microsoft Teams: 8 meeting, channel, and reply actions * docs: add missing integration actions from OAuth config Sync pt-BR enterprise integration docs with crewai-oauth apps.js config. Adds ~96 missing actions across 9 integrations, translated to Portuguese: - Google Contacts: 2 contact group actions - Google Slides: 14 slide manipulation/content actions - Microsoft SharePoint: 27 file, Excel, and Word actions - Microsoft Excel: 2 actions (get_used_range_metadata, get_table_data) - Microsoft Word: 2 actions (copy_document, move_document) - Google Docs: 27 text formatting, table, and header/footer actions - Microsoft Outlook: 7 message and calendar event actions - Microsoft OneDrive: 5 path-based and discovery actions - Microsoft Teams: 8 meeting, channel, and reply actions * docs: add missing integration actions from OAuth config Sync Korean enterprise integration docs with crewai-oauth apps.js config. Adds ~96 missing actions across 9 integrations, translated to Korean: - Google Contacts: 2 contact group actions - Google Slides: 14 slide manipulation/content actions - Microsoft SharePoint: 27 file, Excel, and Word actions - Microsoft Excel: 2 actions (get_used_range_metadata, get_table_data) - Microsoft Word: 2 actions (copy_document, move_document) - Google Docs: 27 text formatting, table, and header/footer actions - Microsoft Outlook: 7 message and calendar event actions - Microsoft OneDrive: 5 path-based and discovery actions - Microsoft Teams: 8 meeting, channel, and reply actions --------- Co-authored-by: Greyson LaLonde <greyson.r.lalonde@gmail.com>
404 lines
17 KiB
Plaintext
404 lines
17 KiB
Plaintext
---
|
|
title: Integração Google Slides
|
|
description: "Criação e gerenciamento de apresentações com integração Google Slides para CrewAI."
|
|
icon: "chart-bar"
|
|
mode: "wide"
|
|
---
|
|
|
|
## Visão Geral
|
|
|
|
Permita que seus agentes criem, editem e gerenciem apresentações do Google Slides. Crie apresentações, atualize conteúdo, importe dados do Google Sheets, gerencie páginas e miniaturas, e simplifique seus fluxos de trabalho de apresentações com automação alimentada por IA.
|
|
|
|
## Pré-requisitos
|
|
|
|
Antes de usar a integração Google Slides, certifique-se de ter:
|
|
|
|
- Uma conta [CrewAI AMP](https://app.crewai.com) com assinatura ativa
|
|
- Uma conta Google com acesso ao Google Slides
|
|
- Conectado sua conta Google através da [página de Integrações](https://app.crewai.com/crewai_plus/connectors)
|
|
|
|
## Configurando a Integração Google Slides
|
|
|
|
### 1. Conecte sua Conta Google
|
|
|
|
1. Navegue para [Integrações CrewAI AMP](https://app.crewai.com/crewai_plus/connectors)
|
|
2. Encontre **Google Slides** na seção de Integrações de Autenticação
|
|
3. Clique em **Conectar** e complete o fluxo OAuth
|
|
4. Conceda as permissões necessárias para acesso a apresentações, planilhas e drive
|
|
5. Copie seu Token Enterprise das [Configurações de Integração](https://app.crewai.com/crewai_plus/settings/integrations)
|
|
|
|
### 2. Instale o Pacote Necessário
|
|
|
|
```bash
|
|
uv add crewai-tools
|
|
```
|
|
|
|
### 3. Configuração de variável de ambiente
|
|
|
|
<Note>
|
|
Para usar integrações com `Agent(apps=[])`, você deve definir a variável de
|
|
ambiente `CREWAI_PLATFORM_INTEGRATION_TOKEN` com seu Enterprise Token.
|
|
</Note>
|
|
|
|
```bash
|
|
export CREWAI_PLATFORM_INTEGRATION_TOKEN="seu_enterprise_token"
|
|
```
|
|
|
|
Ou adicione ao seu arquivo `.env`:
|
|
|
|
```
|
|
CREWAI_PLATFORM_INTEGRATION_TOKEN=seu_enterprise_token
|
|
```
|
|
|
|
## Ações Disponíveis
|
|
|
|
<AccordionGroup>
|
|
<Accordion title="google_slides/create_blank_presentation">
|
|
**Descrição:** Cria uma apresentação em branco sem conteúdo.
|
|
|
|
**Parâmetros:**
|
|
- `title` (string, obrigatório): O título da apresentação.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/get_presentation_metadata">
|
|
**Descrição:** Obter metadados leves de uma apresentação (título, número de slides, IDs dos slides). Use isso primeiro antes de recuperar o conteúdo completo.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação a ser recuperada.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/get_presentation_text">
|
|
**Descrição:** Extrair todo o conteúdo de texto de uma apresentação. Retorna IDs dos slides e texto de formas e tabelas apenas (sem formatação).
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/get_presentation">
|
|
**Descrição:** Recupera uma apresentação por ID.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação a ser recuperada.
|
|
- `fields` (string, opcional): Os campos a incluir na resposta. Use isso para melhorar o desempenho retornando apenas os dados necessários.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/batch_update_presentation">
|
|
**Descrição:** Aplica atualizações, adiciona conteúdo ou remove conteúdo de uma apresentação.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação a ser atualizada.
|
|
- `requests` (array, obrigatório): Uma lista de atualizações a aplicar à apresentação. Cada item é um objeto representando uma solicitação.
|
|
- `writeControl` (object, opcional): Fornece controle sobre como as solicitações de escrita são executadas. Contém `requiredRevisionId` (string).
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/get_slide_text">
|
|
**Descrição:** Extrair conteúdo de texto de um único slide. Retorna apenas texto de formas e tabelas (sem formatação ou estilo).
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `pageObjectId` (string, obrigatório): O ID do slide/página para obter o texto.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/get_page">
|
|
**Descrição:** Recupera uma página específica por seu ID.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `pageObjectId` (string, obrigatório): O ID da página a ser recuperada.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/get_thumbnail">
|
|
**Descrição:** Gera uma miniatura da página.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `pageObjectId` (string, obrigatório): O ID da página para geração de miniatura.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/create_slide">
|
|
**Descrição:** Adicionar um slide em branco adicional a uma apresentação. Novas apresentações já possuem um slide em branco - verifique get_presentation_metadata primeiro. Para slides com áreas de título/corpo, use create_slide_with_layout.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `insertionIndex` (integer, opcional): Onde inserir o slide (baseado em 0). Se omitido, adiciona no final.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/create_slide_with_layout">
|
|
**Descrição:** Criar um slide com layout predefinido contendo áreas de espaço reservado para título, corpo, etc. Melhor que create_slide para conteúdo estruturado. Após criar, use get_page para encontrar os IDs de espaço reservado, depois insira texto neles.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `layout` (string, obrigatório): Tipo de layout. Um de: `BLANK`, `TITLE`, `TITLE_AND_BODY`, `TITLE_AND_TWO_COLUMNS`, `TITLE_ONLY`, `SECTION_HEADER`, `ONE_COLUMN_TEXT`, `MAIN_POINT`, `BIG_NUMBER`. TITLE_AND_BODY é melhor para título+descrição. TITLE para slides apenas com título. SECTION_HEADER para divisores de seção.
|
|
- `insertionIndex` (integer, opcional): Onde inserir (baseado em 0). Se omitido, adiciona no final.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/create_text_box">
|
|
**Descrição:** Criar uma caixa de texto em um slide com conteúdo. Use para títulos, descrições, parágrafos - não para tabelas. Opcionalmente especifique posição (x, y) e tamanho (width, height) em unidades EMU (914400 EMU = 1 polegada).
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do slide para adicionar a caixa de texto.
|
|
- `text` (string, obrigatório): O conteúdo de texto da caixa de texto.
|
|
- `x` (integer, opcional): Posição X em EMU (914400 = 1 polegada). Padrão: 914400 (1 polegada da esquerda).
|
|
- `y` (integer, opcional): Posição Y em EMU (914400 = 1 polegada). Padrão: 914400 (1 polegada do topo).
|
|
- `width` (integer, opcional): Largura em EMU. Padrão: 7315200 (~8 polegadas).
|
|
- `height` (integer, opcional): Altura em EMU. Padrão: 914400 (~1 polegada).
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/delete_slide">
|
|
**Descrição:** Remover um slide de uma apresentação. Use get_presentation primeiro para encontrar o ID do slide.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do objeto do slide a excluir. Obtenha de get_presentation.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/duplicate_slide">
|
|
**Descrição:** Criar uma cópia de um slide existente. A duplicata é inserida imediatamente após o original.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do objeto do slide a duplicar. Obtenha de get_presentation.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/move_slides">
|
|
**Descrição:** Reordenar slides movendo-os para uma nova posição. Os IDs dos slides devem estar na ordem atual da apresentação (sem duplicatas).
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideIds` (array de strings, obrigatório): Array de IDs dos slides a mover. Obrigatoriamente na ordem atual da apresentação.
|
|
- `insertionIndex` (integer, obrigatório): Posição de destino (baseado em 0). 0 = início, número de slides = final.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/insert_youtube_video">
|
|
**Descrição:** Incorporar um vídeo do YouTube em um slide. O ID do vídeo é o valor após "v=" nas URLs do YouTube (ex: para youtube.com/watch?v=abc123, use "abc123").
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do slide para adicionar o vídeo. Obtenha de get_presentation.
|
|
- `videoId` (string, obrigatório): O ID do vídeo do YouTube (o valor após v= na URL).
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/insert_drive_video">
|
|
**Descrição:** Incorporar um vídeo do Google Drive em um slide. O ID do arquivo pode ser encontrado na URL do arquivo no Drive.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do slide para adicionar o vídeo. Obtenha de get_presentation.
|
|
- `fileId` (string, obrigatório): O ID do arquivo do Google Drive do vídeo.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/set_slide_background_image">
|
|
**Descrição:** Definir uma imagem de fundo para um slide. A URL da imagem deve ser publicamente acessível.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do slide para definir o fundo. Obtenha de get_presentation.
|
|
- `imageUrl` (string, obrigatório): URL publicamente acessível da imagem a usar como fundo.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/create_table">
|
|
**Descrição:** Criar uma tabela vazia em um slide. Para criar uma tabela com conteúdo, use create_table_with_content.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do slide para adicionar a tabela. Obtenha de get_presentation.
|
|
- `rows` (integer, obrigatório): Número de linhas na tabela.
|
|
- `columns` (integer, obrigatório): Número de colunas na tabela.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/create_table_with_content">
|
|
**Descrição:** Criar uma tabela com conteúdo em uma única ação. Forneça o conteúdo como uma matriz 2D onde cada array interno é uma linha. Exemplo: [["Cabeçalho1", "Cabeçalho2"], ["Linha1Col1", "Linha1Col2"]].
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `slideId` (string, obrigatório): O ID do slide para adicionar a tabela. Obtenha de get_presentation.
|
|
- `rows` (integer, obrigatório): Número de linhas na tabela.
|
|
- `columns` (integer, obrigatório): Número de colunas na tabela.
|
|
- `content` (array, obrigatório): Conteúdo da tabela como matriz 2D. Cada array interno é uma linha. Exemplo: [["Ano", "Receita"], ["2023", "$10M"]].
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/import_data_from_sheet">
|
|
**Descrição:** Importa dados de uma planilha do Google para uma apresentação.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `sheetId` (string, obrigatório): O ID da planilha do Google para importar.
|
|
- `dataRange` (string, obrigatório): O intervalo de dados a importar da planilha.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/upload_file_to_drive">
|
|
**Descrição:** Faz upload de um arquivo para o Google Drive associado à apresentação.
|
|
|
|
**Parâmetros:**
|
|
- `file` (string, obrigatório): Os dados do arquivo a fazer upload.
|
|
- `presentationId` (string, obrigatório): O ID da apresentação para vincular o arquivo carregado.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/link_file_to_presentation">
|
|
**Descrição:** Vincula um arquivo no Google Drive a uma apresentação.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação.
|
|
- `fileId` (string, obrigatório): O ID do arquivo a vincular.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/get_all_presentations">
|
|
**Descrição:** Lista todas as apresentações acessíveis ao usuário.
|
|
|
|
**Parâmetros:**
|
|
- `pageSize` (integer, opcional): O número de apresentações a retornar por página.
|
|
- `pageToken` (string, opcional): Um token para paginação.
|
|
|
|
</Accordion>
|
|
|
|
<Accordion title="google_slides/delete_presentation">
|
|
**Descrição:** Exclui uma apresentação por ID.
|
|
|
|
**Parâmetros:**
|
|
- `presentationId` (string, obrigatório): O ID da apresentação a ser excluída.
|
|
|
|
</Accordion>
|
|
</AccordionGroup>
|
|
|
|
## Exemplos de Uso
|
|
|
|
### Configuração Básica do Agente Google Slides
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
# Crie um agente com capacidades do Google Slides
|
|
slides_agent = Agent(
|
|
role="Criador de Apresentações",
|
|
goal="Criar e gerenciar apresentações do Google Slides de forma eficiente",
|
|
backstory="Um assistente IA especializado em design de apresentações e gerenciamento de conteúdo.",
|
|
apps=['google_slides'] # Todas as ações do Google Slides estarão disponíveis
|
|
)
|
|
|
|
# Tarefa para criar uma nova apresentação
|
|
create_presentation_task = Task(
|
|
description="Criar uma nova apresentação em branco intitulada 'Relatório de Vendas Trimestral'",
|
|
agent=slides_agent,
|
|
expected_output="Nova apresentação 'Relatório de Vendas Trimestral' criada com sucesso"
|
|
)
|
|
|
|
# Execute a tarefa
|
|
crew = Crew(
|
|
agents=[slides_agent],
|
|
tasks=[create_presentation_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### Atualizando Conteúdo da Apresentação
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
# Crie um agente focado em atualizar apresentações
|
|
updater_agent = Agent(
|
|
role="Atualizador de Apresentações",
|
|
goal="Atualizar e modificar apresentações existentes do Google Slides",
|
|
backstory="Um assistente IA habilidoso em fazer atualizações precisas no conteúdo de apresentações.",
|
|
apps=['google_slides/batch_update_presentation']
|
|
)
|
|
|
|
# Tarefa para atualizar uma apresentação
|
|
update_presentation_task = Task(
|
|
description="Atualizar a apresentação com ID 'your_presentation_id' para adicionar uma nova caixa de texto no primeiro slide com o conteúdo 'Destaques Principais'.",
|
|
agent=updater_agent,
|
|
expected_output="Apresentação atualizada com novo conteúdo."
|
|
)
|
|
|
|
crew = Crew(
|
|
agents=[updater_agent],
|
|
tasks=[update_presentation_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
### Importando Dados e Gerenciando Arquivos
|
|
|
|
```python
|
|
from crewai import Agent, Task, Crew
|
|
|
|
# Crie um agente para importação de dados e gerenciamento de arquivos
|
|
data_presenter = Agent(
|
|
role="Apresentador de Dados",
|
|
goal="Importar dados para apresentações e gerenciar arquivos vinculados",
|
|
backstory="Um assistente IA que integra dados de várias fontes em apresentações.",
|
|
apps=['google_slides/import_data_from_sheet', 'google_slides/upload_file_to_drive']
|
|
)
|
|
|
|
# Tarefa para importar dados de uma planilha
|
|
import_data_task = Task(
|
|
description="Importar dados da planilha do Google 'your_sheet_id' intervalo 'A1:C10' para a apresentação 'your_presentation_id'.",
|
|
agent=data_presenter,
|
|
expected_output="Dados importados da planilha do Google para a apresentação."
|
|
)
|
|
|
|
crew = Crew(
|
|
agents=[data_presenter],
|
|
tasks=[import_data_task]
|
|
)
|
|
|
|
crew.kickoff()
|
|
```
|
|
|
|
## Solução de Problemas
|
|
|
|
### Problemas Comuns
|
|
|
|
**Erros de Autenticação**
|
|
|
|
- Certifique-se de que sua conta Google tenha as permissões necessárias para acesso ao Google Slides e Google Drive.
|
|
- Verifique se a conexão OAuth inclui todos os escopos necessários.
|
|
|
|
**Problemas de ID de Apresentação/Página**
|
|
|
|
- Verifique novamente os IDs de apresentação e IDs de objeto de página para correção.
|
|
- Certifique-se de que a apresentação ou página existe e está acessível.
|
|
|
|
**Formatação de Solicitação de Atualização em Lote**
|
|
|
|
- Ao usar `batch_update_presentation`, certifique-se de que o array `requests` esteja formatado corretamente de acordo com a documentação da API do Google Slides.
|
|
- Atualizações complexas frequentemente requerem estruturas JSON específicas para cada tipo de solicitação (ex: `createText`, `insertShape`).
|
|
|
|
**Problemas de Upload/Vinculação de Arquivos**
|
|
|
|
- Certifique-se de que o conteúdo do `file` esteja fornecido corretamente para `upload_file_to_drive`.
|
|
- Verifique se o `fileId` está correto ao vincular arquivos a uma apresentação.
|
|
- Verifique as permissões do Google Drive para acesso a arquivos.
|
|
|
|
### Obtendo Ajuda
|
|
|
|
<Card title="Precisa de Ajuda?" icon="headset" href="mailto:support@crewai.com">
|
|
Entre em contato com nossa equipe de suporte para assistência com configuração
|
|
ou solução de problemas da integração Google Slides.
|
|
</Card>
|