--- 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 Para usar integrações com `Agent(apps=[])`, você deve definir a variável de ambiente `CREWAI_PLATFORM_INTEGRATION_TOKEN` com seu Enterprise Token. ```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 **Descrição:** Cria uma apresentação em branco sem conteúdo. **Parâmetros:** - `title` (string, obrigatório): O título da apresentação. **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. **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. **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. **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). **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. **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. **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. **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. **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. **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). **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. **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. **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. **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). **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. **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. **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. **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"]]. **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. **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. **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. **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. **Descrição:** Exclui uma apresentação por ID. **Parâmetros:** - `presentationId` (string, obrigatório): O ID da apresentação a ser excluída. ## 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 Entre em contato com nossa equipe de suporte para assistência com configuração ou solução de problemas da integração Google Slides.