{"id":66109,"date":"2023-12-19T11:46:02","date_gmt":"2023-12-19T14:46:02","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=66109&#038;preview=true&#038;preview_id=66109"},"modified":"2025-02-25T10:17:30","modified_gmt":"2025-02-25T13:17:30","slug":"backups-wordpress-api","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/","title":{"rendered":"Gerencie Backups do WordPress no Slack com a API da Kinsta"},"content":{"rendered":"<p>Os backups oferecem aos propriet\u00e1rios de sites uma rede de seguran\u00e7a que aumenta a confian\u00e7a em caso de imprevistos. Os usu\u00e1rios do servi\u00e7o de <a href=\"https:\/\/kinsta.com\/pt\/hospedagem-wordpress\/\">hospedagem gerenciada de WordPress<\/a> da Kinsta se beneficiam de <a href=\"https:\/\/kinsta.com\/pt\/docs\/hospedagem-de-wordpress\/backups-wordpress\/\">seis tipos de backups<\/a>: di\u00e1rios autom\u00e1ticos, a cada hora (opcional), manuais, criados automaticamente pelo sistema, que podem ser baixados e tamb\u00e9m backups externos, enviados diretamente para o Amazon S3 ou Google Cloud Storage.<\/p>\n<p>Voc\u00ea pode gerenciar esses backups com facilidade no painel <a href=\"https:\/\/my.kinsta.com\/?lang=pt\">MyKinsta<\/a>. E agora a <a href=\"https:\/\/kinsta.com\/pt\/docs\/kinsta-api\/\">API da Kinsta<\/a> abre as portas para que voc\u00ea possa trabalhar com sites WordPress e seus backups. De ag\u00eancias com seus pain\u00e9is de controle para gerenciar centenas de instala\u00e7\u00f5es a equipes que buscam aproveitar ferramentas de produtividade como o Slack, a API da Kinsta pode ajudar a conectar tudo isso.<\/p>\n<p>Este guia analisa os diversos endpoints de backup dispon\u00edveis atrav\u00e9s da API, o potencial deles e como voc\u00ea pode utiliz\u00e1-los para administrar backups em um ambiente do Slack.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Entendendo a API da Kinsta<\/h2>\n<p>A <a href=\"https:\/\/kinsta.com\/pt\/changelog\/kinsta-api\/\">API da Kinsta<\/a> \u00e9 uma ferramenta poderosa que permite que voc\u00ea interaja com os servi\u00e7os da Kinsta, como sites WordPress hospedados, de forma program\u00e1tica. Ela pode ajudar voc\u00ea a automatizar v\u00e1rias tarefas relacionadas ao gerenciamento do WordPress, incluindo a cria\u00e7\u00e3o de sites, a recupera\u00e7\u00e3o de informa\u00e7\u00f5es do site, a obten\u00e7\u00e3o do <a href=\"https:\/\/kinsta.com\/pt\/blog\/chave-api-kinsta\/#how-to-use-kinsta-api-to-build-a-status-checker\">status de um site<\/a>, a navega\u00e7\u00e3o e a restaura\u00e7\u00e3o de backups e muito mais.<\/p>\n<p>Para utilizar a API da Kinsta, \u00e9 necess\u00e1rio ter uma conta com ao menos um site, <a href=\"https:\/\/sevalla.com\/application-hosting\/\">aplicativo<\/a> ou <a href=\"https:\/\/sevalla.com\/database-hosting\/\">banco de dados<\/a> do WordPress no MyKinsta. Tamb\u00e9m \u00e9 preciso gerar uma chave de API para autentica\u00e7\u00e3o e acesso \u00e0 sua conta.<\/p>\n<p>Para gerar uma chave API:<\/p>\n<ol start=\"1\">\n<li>V\u00e1 para o painel MyKinsta.<\/li>\n<li>Navegue at\u00e9 a p\u00e1gina <strong>Chaves API <\/strong>(<strong>Seu nome<\/strong> &gt; <strong>Configura\u00e7\u00f5es da empresa<\/strong> &gt; <strong>Chaves API<\/strong>).<\/li>\n<li>Clique em <strong>Criar chave API<\/strong>.<\/li>\n<li>Escolha uma expira\u00e7\u00e3o ou defina uma data de in\u00edcio personalizada e o n\u00famero de horas para a chave expirar.<\/li>\n<li>D\u00ea \u00e0 chave um nome exclusivo.<\/li>\n<li>Clique em <strong>Gerar<\/strong>.<\/li>\n<\/ol>\n<p>Depois de criar uma chave API, fa\u00e7a uma c\u00f3pia dela e guarde em um lugar seguro (recomenda-se o uso de um <a href=\"https:\/\/kinsta.com\/pt\/blog\/gerenciadores-de-senhas\/\">gerenciador de senhas<\/a>), pois essa \u00e9 a <strong>\u00fanica ocasi\u00e3o em que ela ser\u00e1 exibida no MyKinsta<\/strong>. Voc\u00ea pode gerar v\u00e1rias chaves API, que ser\u00e3o listadas na p\u00e1gina <strong>Chaves API<\/strong>. Se voc\u00ea precisar revogar uma chave API, clique no bot\u00e3o <strong>Revogar<\/strong> ao lado de seu nome e data de validade.<\/p>\n<h2>Gerenciando backups de sites WordPress com a API da Kinsta<\/h2>\n<p>A API da Kinsta tem endpoints para essas opera\u00e7\u00f5es relacionadas a backups:<\/p>\n<ul>\n<li><a href=\"https:\/\/api-docs.kinsta.com\/tag\/Backups#operation\/getBackups\" target=\"_blank\" rel=\"noopener noreferrer\">Listar backups manuais, programados e gerados pelo sistema<\/a><\/li>\n<li><a href=\"https:\/\/api-docs.kinsta.com\/tag\/Backups#operation\/getDownloadableBackups\" target=\"_blank\" rel=\"noopener noreferrer\">Listar backups que podem ser baixados<\/a><\/li>\n<li><a href=\"https:\/\/api-docs.kinsta.com\/tag\/Backups#operation\/restoreBackup\" target=\"_blank\" rel=\"noopener noreferrer\">Restaurar um backup agendado, manual ou gerado pelo sistema<\/a><\/li>\n<li>\n<p data-renderer-start-pos=\"3\"><a href=\"https:\/\/api-docs.kinsta.com\/tag\/Backups#operation\/addManualBackup\">Criar um backup manual para um ambiente espec\u00edfico<\/a><\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"57\"><a href=\"https:\/\/api-docs.kinsta.com\/tag\/Backups#operation\/removeBackup\">Remover um backup do ambiente de um site WordPress<\/a><\/p>\n<\/li>\n<\/ul>\n<p>Para interagir com esses endpoints, voc\u00ea precisar\u00e1 da chave API que gerou anteriormente. Vamos explorar esses endpoints e depois integr\u00e1-los a um Slackbot para que voc\u00ea possa usar os <a href=\"https:\/\/kinsta.com\/pt\/blog\/comunicacao-do-slack-para-o-aplicativo\/\">comandos Slash do Slack<\/a> para interagir com a API da Kinsta.<\/p>\n<h3>Como obter backups manuais, programados e gerados pelo sistema com a API da Kinsta<\/h3>\n<p>Quando voc\u00ea navega para um site WordPress espec\u00edfico no seu painel MyKinsta e clicar na aba <strong>Backups<\/strong>, voc\u00ea encontrar\u00e1 uma lista de backups, incluindo backups di\u00e1rios, a cada hora (se ativados), manuais e gerados pelo sistema.<\/p>\n<p>Agora, se voc\u00ea deseja acessar esses dados ou executar a\u00e7\u00f5es de um aplicativo, ou plataforma externa, nossa API simplifica o processo.<\/p>\n<p>Voc\u00ea pode recuperar os detalhes do backup, como ID, nome, tipo e hora de cria\u00e7\u00e3o, de forma program\u00e1tica. Ao usar a API em suas pr\u00f3prias ferramentas, voc\u00ea pode eliminar a necessidade de acesso ao painel sempre que essas informa\u00e7\u00f5es forem necess\u00e1rias<\/p>\n<p>Para acessar este endpoint, obtenha o ID do ambiente do seu site programaticamente por meio do <a href=\"https:\/\/api-docs.kinsta.com\/tag\/WordPress-Site-Environments#operation\/getSiteEnvironments\">get site environment endpoint<\/a>, que retorna detalhes sobre o ambiente do seu site, incluindo seu ID:<\/p>\n<pre><code class=\"language-json\">{\n  \"site\": {\n    \"environments\": [\n      {\n        \"id\": \"54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n        \"name\": \"first-site\",\n        \"display_name\": \"First site\",\n        \"is_blocked\": false,\n        \"id_edge_cache\": \"54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n        \"cdn_cache_id\": \"54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n        \"is_premium\": false,\n        \"domains\": [\n          {\n            \"id\": \"54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n            \"name\": \"example.com\",\n            \"type\": \"live\"\n          }\n        ],\n        \"primaryDomain\": {\n          \"id\": \"54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n          \"name\": \"example.com\",\n          \"type\": \"live\"\n        },\n        \"ssh_connection\": {\n          \"ssh_port\": \"808080\",\n          \"ssh_ip\": {\n            \"external_ip\": \"1xx.1xx.1xx.1xx\"\n          }\n        },\n        \"container_info\": {\n          \"id\": \"54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n          \"php_engine_version\": \"php8.0\"\n        }\n      }\n    ]\n  }\n}<\/code><\/pre>\n<p>Quando voc\u00ea souber o ID do ambiente do seu site, poder\u00e1 enviar uma solicita\u00e7\u00e3o <code>GET<\/code> para <a href=\"https:\/\/api.kinsta.com\/v2\/sites\/environments\/%24%7BenvId%7D\/backups\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/api.kinsta.com\/v2\/sites\/environments\/${envId}\/backups<\/a> para recuperar uma array de todos os backups do seu site:<\/p>\n<pre><code class=\"language-bash\">curl -i -X GET \\\n  'https:\/\/api.kinsta.com\/v2\/sites\/environments\/{env_id}\/backups' \\\n  -H 'Authorization: Bearer &lt;YOUR_TOKEN_HERE&gt;'<\/code><\/pre>\n<p>Isso retornar\u00e1 um objeto com uma array de backups, que voc\u00ea pode inserir em seu cliente e tamb\u00e9m manipular seus dados:<\/p>\n<pre><code class=\"language-json\">{\n  \"environment\": {\n    \"display_name\": \"MyEnvironment\",\n    \"backups\": [\n      {\n        \"id\": 123456789,\n        \"name\": \"mySiteName-1234567890-backupType\",\n        \"note\": \"Daily Auto Backup\",\n        \"type\": \"manual\",\n        \"created_at\": 1665382600770\n      }\n    ]\n  }\n}<\/code><\/pre>\n<h3>Como restaurar um backup programado, manual ou gerado pelo sistema com a API da Kinsta<\/h3>\n<p>Com a API da Kinsta, voc\u00ea tamb\u00e9m pode restaurar um backup espec\u00edfico da lista gerada para um ambiente usando uma solicita\u00e7\u00e3o <code>POST<\/code>.<\/p>\n<p>Tudo o que voc\u00ea precisa \u00e9 do ID do backup, do ID do ambiente de destino e do nome do ambiente do backup. Essa a\u00e7\u00e3o tamb\u00e9m elimina a necessidade de voc\u00ea revisitar o painel MyKinsta para tarefas de restaura\u00e7\u00e3o.<\/p>\n<pre><code class=\"language-bash\">curl -i -X POST \\\n  'https:\/\/api.kinsta.com\/v2\/sites\/environments\/{target_env_id}\/backups\/restore' \\\n  -H 'Authorization: Bearer &lt;YOUR_TOKEN_HERE&gt;' \\\n  -H 'Content-Type: application\/json' \\\n  -d '{\n    \"backup_id\": 123456789,\n    \"env_display_name_of_backup\": \"my-env\"\n  }'<\/code><\/pre>\n<p>A resposta a esta solicita\u00e7\u00e3o inclui um status da opera\u00e7\u00e3o e um ID da opera\u00e7\u00e3o, permitindo que voc\u00ea acompanhe programaticamente o progresso da restaura\u00e7\u00e3o com nosso <a href=\"https:\/\/api-docs.kinsta.com\/tag\/Operations#operation\/getOperationStatus\">endpoint de status da opera\u00e7\u00e3o<\/a>:<\/p>\n<pre><code class=\"language-json\">{\n  \"operation_id\": \"backups:restore-54fb80af-576c-4fdc-ba4f-b596c83f15a1\",\n  \"message\": \"Restoring a backup to environment in progress\",\n  \"status\": 202\n}<\/code><\/pre>\n<h3>Como obter backups para download com a API da Kinsta<\/h3>\n<p>Voc\u00ea pode acessar backups existentes e seus links de download programaticamente enviando uma solicita\u00e7\u00e3o GET para: <a href=\"https:\/\/api.kinsta.com\/v2\/sites\/environments\/%7Benv_id%7D\/downloadable-backups\">https:\/\/api.kinsta.com\/v2\/sites\/environments\/{env_id}\/downloadable-backups<\/a>. Isso retornar\u00e1 um array com todos os backups dispon\u00edveis para download do seu site.<\/p>\n<pre><code class=\"language-bash\">curl -i -X GET \\\n  'https:\/\/api.kinsta.com\/v2\/sites\/environments\/{env_id}\/downloadable-backups' \\\n  -H 'Authorization: Bearer &lt;YOUR_TOKEN_HERE&gt;'<\/code><\/pre>\n<p>Cada backup para download na array inclui um ID, registro de data e hora de cria\u00e7\u00e3o, link de download, registro de data e hora de expira\u00e7\u00e3o e um status que indica se o processo de gera\u00e7\u00e3o est\u00e1 em andamento:<\/p>\n<pre><code class=\"language-json\">{\n  \"environment\": {\n    \"display_name\": \"MyEnvironment\",\n    \"downloadable_backups\": [\n      {\n        \"id\": \"1915fa3a-7ef4-4766-806d-71104be7deb0\",\n        \"created_at\": 1665382600770,\n        \"download_link\": \"https:\/\/example.com\",\n        \"expires_at\": 1665382600770,\n        \"is_generation_in_progress\": true\n      }\n    ]\n  }\n}<\/code><\/pre>\n<p>Clicando no link de download solicita o download do arquivo zip do backup, permitindo que voc\u00ea incorpore o link no seu aplicativo para acesso e download convenientes pelos seus usu\u00e1rios.<\/p>\n<h3 data-renderer-start-pos=\"387\">Como adicionar um backup manual a um ambiente com a API da Kinsta<\/h3>\n<p>Criar um backup manual do seu site WordPress pelo MyKinsta \u00e9 um processo simples, e a API da Kinsta oferece uma forma eficiente de realizar essa a\u00e7\u00e3o programaticamente.<\/p>\n<p>Para iniciar um backup manual, voc\u00ea deve enviar uma solicita\u00e7\u00e3o POST para a API da Kinsta no seguinte endpoint: <a href=\"https:\/\/api-docs.kinsta.com\/tag\/Backups#operation\/addManualBackup\">https:\/\/api.kinsta.com\/v2\/sites\/environments\/{env_id}\/manual-backups<\/a>. Essa solicita\u00e7\u00e3o precisa incluir o ID do ambiente onde o backup ser\u00e1 adicionado, al\u00e9m de uma tag no corpo da mensagem. Essa tag serve como uma nota curta para facilitar a identifica\u00e7\u00e3o do backup posteriormente.<\/p>\n<pre><code class=\"language-bash\">curl -i -X POST \\\n  'https:\/\/api.kinsta.com\/v2\/sites\/environments\/{env_id}\/manual-backups' \\\n  -H 'Authorization: Bearer &lt;YOUR_TOKEN_HERE&gt;' \\\n  -H 'Content-Type: application\/json' \\\n  -d '{\n    \"tag\": \"my-awesome-backup\"\n  }'<\/code><\/pre>\n<p>Ap\u00f3s a execu\u00e7\u00e3o bem-sucedida da solicita\u00e7\u00e3o, a API retornar\u00e1 um status da opera\u00e7\u00e3o e um ID, permitindo que voc\u00ea acompanhe o progresso da cria\u00e7\u00e3o do backup manual.<\/p>\n<h3 data-renderer-start-pos=\"1182\">Como remover um backup do ambiente de um site WordPress com a API da Kinsta<\/h3>\n<p data-renderer-start-pos=\"1259\">A API da Kinsta n\u00e3o apenas permite a cria\u00e7\u00e3o de backups, mas tamb\u00e9m possibilita sua remo\u00e7\u00e3o, oferecendo um gerenciamento completo dos backups de forma program\u00e1tica.<\/p>\n<p data-renderer-start-pos=\"1425\">Para excluir um backup, voc\u00ea deve enviar uma solicita\u00e7\u00e3o DELETE, incluindo o ID do backup espec\u00edfico. A estrutura dessa solicita\u00e7\u00e3o usando <code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">curl<\/code>:<\/p>\n<pre><code class=\"language-bash\">curl -i -X DELETE \\\n  'https:\/\/api.kinsta.com\/v2\/sites\/environments\/backups\/{backup_id}' \\\n  -H 'Authorization: Bearer &lt;YOUR_TOKEN_HERE&gt;'<\/code><\/pre>\n<p>Ap\u00f3s a execu\u00e7\u00e3o, a solicita\u00e7\u00e3o retornar\u00e1 o status da opera\u00e7\u00e3o, o ID e uma mensagem confirmando a exclus\u00e3o.<\/p>\n<h2>Implementa\u00e7\u00e3o de comandos Slack Slash para gerenciar backups com a API da Kinsta<\/h2>\n<p>Em um aba recente, foi detalhado o <a href=\"https:\/\/kinsta.com\/pt\/blog\/criar-slackbot-gerenciamento-sites\/\">processo de build\u00a0de um Slackbot utilizando Node.js e a API da Kinsta<\/a> para gerenciamento de sites. O guia descreveu a cria\u00e7\u00e3o de um Slackbot e o estabelecimento da intera\u00e7\u00e3o com a API da Kinsta por meio de um aplicativo <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-node-js\/\">Node.js<\/a> hospedado em nossa plataforma de <a href=\"https:\/\/sevalla.com\/application-hosting\/\">hospedagem de aplicativos<\/a>.<\/p>\n<p>Aqui, voc\u00ea se concentrar\u00e1 na cria\u00e7\u00e3o de novos comandos Slack Slash para os tr\u00eas endpoints de backup. Para continuar aqui, primeiro voc\u00ea deve revisar o guia anterior para entender o aplicativo <a href=\"https:\/\/kinsta.com\/pt\/topicos\/node-js\/\">Node.js<\/a> e como <a href=\"https:\/\/kinsta.com\/pt\/blog\/criar-slackbot-gerenciamento-sites\/#creating-a-slack-application\">configurar seu Slackbot personalizado<\/a>.<\/p>\n<p>Depois de conclu\u00eddo, voc\u00ea poder\u00e1 clonar nosso projeto inicial com o Git:<\/p>\n<ol start=\"1\">\n<li>Navegue at\u00e9 o diret\u00f3rio de sua prefer\u00eancia para armazenar seu c\u00f3digo e execute o seguinte comando no terminal:\n<pre><code class=\"language-bash\">git clone -b tutorial-1 --single-branch https:\/\/github.com\/olawanlejoel\/SlackBot-KinstaAPI.git<\/code><\/pre>\n<\/li>\n<li>V\u00e1 para a pasta do projeto e instale todas as depend\u00eancias necess\u00e1rias:\n<pre><code class=\"language-bash\">cd SlackBot-KinstaAPI\nnpm install<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>Como criar comandos de barra no Slack para lidar com backups<\/h3>\n<p>No artigo anterior, foram criados cinco comandos slash para lidar com o seguinte:<\/p>\n<ul>\n<li><code>\/site_id [site name]<\/code>: Usado para recuperar o ID do site.<\/li>\n<li><code>\/environment_id [site name]<\/code>: Usado para recuperar o ID do ambiente.<\/li>\n<li><code>\/clear_site_cache [environment id]<\/code>: Usado para limpar o cache do site.<\/li>\n<li><code>\/restart_php_engine [environment id]<\/code>: Usado para reiniciar o mecanismo PHP de um site.<\/li>\n<li><code>\/operation_status [operation id]<\/code>: Usado para verificar o status de uma opera\u00e7\u00e3o.<\/li>\n<\/ul>\n<p>Para este guia, voc\u00ea adicionar\u00e1 tr\u00eas novos comandos. Para criar comandos Slash no Slack, navegue at\u00e9 seu <a href=\"https:\/\/api.slack.com\/apps\/\" target=\"_blank\" rel=\"noopener noreferrer\">aplicativo Slack<\/a>, clique na op\u00e7\u00e3o de menu <strong>Slash Commands<\/strong> na barra lateral esquerda e clique no bot\u00e3o <strong>Create New Command<\/strong>. Criar comandos com as seguintes informa\u00e7\u00f5es:<\/p>\n<table>\n<tbody>\n<tr>\n<td colspan=\"1\" rowspan=\"1\"><strong>Comando<\/strong><\/td>\n<td colspan=\"1\" rowspan=\"1\"><strong>Descri\u00e7\u00e3o curta<\/strong><\/td>\n<td colspan=\"1\" rowspan=\"1\"><strong>Dica de uso<\/strong><\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\/get_backups<\/td>\n<td colspan=\"1\" rowspan=\"1\">Recupera todos os backups do site com suas informa\u00e7\u00f5es associadas<\/td>\n<td colspan=\"1\" rowspan=\"1\">[ID do ambiente]<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\/get_downloadable_backups<\/td>\n<td colspan=\"1\" rowspan=\"1\">Recupera todos os backups para download do seu site com as informa\u00e7\u00f5es e o link associados<\/td>\n<td colspan=\"1\" rowspan=\"1\">[ID do ambiente]<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\/restore_backup<\/td>\n<td colspan=\"1\" rowspan=\"1\">Restaura um backup agendado, manual ou gerado pelo sistema em um ambiente<\/td>\n<td colspan=\"1\" rowspan=\"1\">[ID do ambiente de destino] [ID do backup] [Nome do ambiente]<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\/add_manual_backup<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p data-renderer-start-pos=\"1725\">Criar um backup manual do ambiente do seu site<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">[ID do ambiente] [Tag]<\/td>\n<\/tr>\n<tr>\n<td colspan=\"1\" rowspan=\"1\">\/delete_backup<\/td>\n<td colspan=\"1\" rowspan=\"1\">\n<p data-renderer-start-pos=\"1797\">Remover um backup espec\u00edfico do ambiente do seu site<\/p>\n<\/td>\n<td colspan=\"1\" rowspan=\"1\">[ID do backup]<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Depois de criar esses comandos, voc\u00ea pode verificar seu ambiente do Slack digitando <code>\/<\/code>. Voc\u00ea notar\u00e1 que esses comandos foram adicionados.<\/p>\n<p>A pr\u00f3xima etapa \u00e9 implementar a intera\u00e7\u00e3o com a API da Kinsta para que os dados passados do Slack possam ser recebidos e usados para consultar o endpoint espec\u00edfico da API.<\/p>\n<h3>Implementando solicita\u00e7\u00f5es de busca do Node.js para opera\u00e7\u00f5es de backup<\/h3>\n<p>Depois de criar os comandos de barra necess\u00e1rios, agora voc\u00ea pode modificar seu aplicativo Node.js para responder a eles. Vamos come\u00e7ar criando <a href=\"https:\/\/kinsta.com\/courses\/node-js-full-stack-developer\/asynchronous-callback-functions\/\">fun\u00e7\u00f5es ass\u00edncronas<\/a> para interagir com cada endpoint.<\/p>\n<p>No arquivo <strong>app.js<\/strong>, vamos definir cinco fun\u00e7\u00f5es:<\/p>\n<ul>\n<li><code>getBackups(environmentId)<\/code>: Obt\u00e9m informa\u00e7\u00f5es sobre backups para um ambiente espec\u00edfico.<\/li>\n<li><code>getDownloadableBackups(environmentId)<\/code>: Recupera backups que podem ser baixados para um determinado ambiente.<\/li>\n<li><code>restoreBackup(targetEnvironmentId, backupId, environmentName)<\/code>: Inicia um processo de restaura\u00e7\u00e3o para um determinado backup em um ambiente espec\u00edfico.<\/li>\n<li>\n<p data-renderer-start-pos=\"1915\"><code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">addManualBackup(environmentId, tag)<\/code>: Cria um backup manual para um ambiente espec\u00edfico, com uma tag opcional para identifica\u00e7\u00e3o.<\/p>\n<\/li>\n<li>\n<p data-renderer-start-pos=\"2047\"><code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">deleteBackup(backupId)<\/code>: Remove um backup espec\u00edfico da lista de backups do ambiente.<\/p>\n<\/li>\n<\/ul>\n<p>Aqui est\u00e1 a solicita\u00e7\u00e3o Fetch para cada fun\u00e7\u00e3o:<\/p>\n<pre><code class=\"language-js\">async function getBackups(environmentId) {\n    const resp = await fetch(\n        `${KinstaAPIUrl}\/sites\/environments\/${environmentId}\/backups`,\n        {\n            method: 'GET',\n            headers: getHeaders,\n        }\n    );\n    const data = await resp.json();\n    return data;\n}\n\nasync function getDownloadableBackups(environmentId) {\n    const resp = await fetch(\n        `${KinstaAPIUrl}\/sites\/environments\/${environmentId}\/downloadable-backups`,\n        {\n            method: 'GET',\n            headers: getHeaders,\n        }\n    );\n    const data = await resp.json();\n    return data;\n}\n\nasync function restoreBackup(targetEnvironmentId, backupId, environmentName) {\n    const resp = await fetch(\n        `${KinstaAPIUrl}\/sites\/environments\/${targetEnvironmentId}\/backups\/restore`,\n        {\n            method: 'POST',\n            headers: postHeaders,\n            body: JSON.stringify({\n                backup_id: backupId,\n                env_display_name_of_backup: environmentName,\n            }),\n        }\n    );\n    const data = await resp.json();\n    return data;\n}\n\nasync function addManualBackup(environmentId, tag) {\n    const resp = await fetch(\n        `${KinstaAPIUrl}\/sites\/environments\/${environmentId}\/manual-backups`,\n        {\n            method: 'POST',\n            headers: postHeaders,\n            body: JSON.stringify({\n                tag,\n            }),\n        }\n    );\n\n    const data = await resp.json();\n    return data;\n}\n\nasync function deleteBackup(backupId) {\n    const resp = await fetch(\n        `${KinstaAPIUrl}\/sites\/environments\/backups\/${backupId}`,\n        {\n            method: 'DELETE',\n            headers: getHeaders,\n        }\n    );\n\n    const data = await resp.json();\n    return data;\n}<\/code><\/pre>\n<p>Cada fun\u00e7\u00e3o \u00e9 constru\u00edda para se comunicar com a API da Kinsta utilizando a <a href=\"https:\/\/kinsta.com\/pt\/blog\/solicitacoes-http-javascript\/#4-how-to-make-an-http-request-in-javascript-using-the-fetch-api\">API Fetch<\/a> do JavaScript. Os par\u00e2metros para IDs de ambiente, IDs de backup e nomes de ambiente s\u00e3o entradas esperadas, que devem ser recebidas dos comandos do Slack e, em seguida, passadas para essas fun\u00e7\u00f5es para execu\u00e7\u00e3o.<\/p>\n<p>Para simplificar o c\u00f3digo e evitar repeti\u00e7\u00f5es, voc\u00ea notar\u00e1 o uso de tr\u00eas vari\u00e1veis usadas para armazenar elementos essenciais: A URL da API b\u00e1sica e os cabe\u00e7alhos para solicita\u00e7\u00f5es <code>GET<\/code> e <code>POST<\/code>.<\/p>\n<pre><code class=\"language-js\">const KinstaAPIUrl = 'https:\/\/api.kinsta.com\/v2';\n\nconst getHeaders = {\n    Authorization: `Bearer ${process.env.KINSTA_API_KEY}`,\n};\n\nconst postHeaders = {\n    'Content-Type': 'application\/json',\n    Authorization: `Bearer ${process.env.KINSTA_API_KEY}`,\n};<\/code><\/pre>\n<p>Al\u00e9m disso, chaves e tokens confidenciais, como o segredo de assinatura do Slack, o token do bot, o token do aplicativo, o ID da empresa e a chave da API, s\u00e3o armazenados com seguran\u00e7a no arquivo <strong>.env<\/strong>.<\/p>\n<pre><code class=\"language-bash\">SLACK_SIGNING_SECRET=\"YOUR_SIGNING_SECRET\"\nSLACK_BOT_TOKEN=\"xoxb-YOUR_BOT_TOKEN\"\nAPP_TOKEN=\"xapp-YOUR_APP_TOKEN\"\nKINSTA_COMPANY_ID = \"YOUR_COMPANY_ID\" \nKINSTA_API_KEY = \"YOUR_API_KEY\"<\/code><\/pre>\n<p>Com essas fun\u00e7\u00f5es e chaves em vigor, a pr\u00f3xima etapa envolve a configura\u00e7\u00e3o dos comandos do Slack. Essa configura\u00e7\u00e3o implica receber valores de entrada do Slack, invocar os m\u00e9todos relevantes com base nessa entrada e enviar uma resposta espec\u00edfica de volta ao Slack.<\/p>\n<h3>Configura\u00e7\u00e3o de comandos do Slash com o Node.js para gerenciar backups<\/h3>\n<p>Para configurar um comando do Slash, voc\u00ea usar\u00e1 a fun\u00e7\u00e3o <code>app.command()<\/code>, que funciona de forma semelhante aos ouvintes de eventos em JavaScript. Voc\u00ea especifica o comando que deseja ouvir e, em seguida, cria uma fun\u00e7\u00e3o callback ass\u00edncrona para definir a a\u00e7\u00e3o desejada. Essa fun\u00e7\u00e3o recebe tr\u00eas par\u00e2metros:<\/p>\n<ul>\n<li><code>command<\/code>: Cont\u00e9m os detalhes do comando de barra enviado pelo usu\u00e1rio.<\/li>\n<li><code>ack<\/code>: Confirma o recebimento do comando de barra.<\/li>\n<li><code>say<\/code>: Envia uma mensagem de volta ao canal do Slack.<\/li>\n<\/ul>\n<p>Configura\u00e7\u00e3o dos cinco comandos:<\/p>\n<pre><code class=\"language-js\">app.command('\/get_backups', async ({ command, ack, say }) =&gt; {\n    await ack();\n\n    let environmentId = command.text;\n    let response = await getBackups(environmentId);\n    let backups = response.environment.backups;\n\n    let backupDetails = backups\n        .map((backup) =&gt; {\n            return `Backup ID: ${backup.id}\\nName: ${backup.name}\\nNote: ${\n                backup.note\n            }\\nType: ${backup.type}\\nCreated At: ${new Date(backup.created_at)}\\n\\n`;\n        })\n        .join('');\n\n    if (backupDetails) {\n        say(\n            `Hey \ud83d\udc4b, here are the backup details for environment ID ${environmentId}:\\n\\n${backupDetails}`\n        );\n    } else {\n        say(`No backups found for environment ID ${environmentId}`);\n    }\n});\n\napp.command('\/get_downloadable_backups', async ({ command, ack, say }) =&gt; {\n    await ack();\n\n    let environmentId = command.text;\n    let response = await getDownloadableBackups(environmentId);\n    let backups = response.environment.downloadable_backups;\n\n    let downloadable_backupDetails = backups\n        .map((backup) =&gt; {\n            return `Backup ID: ${backup.id}\\nDownload Link: ${\n                backup.download_link\n            }\\nCreated At: ${new Date(backup.created_at)}\\nExpires At: ${new Date(\n                backup.expires_at\n            )}\\nIs Generation in Progress: ${backup.is_generation_in_progress}\\n\\n`;\n        })\n        .join('');\n\n    if (downloadable_backupDetails) {\n        say(\n            `Hey \ud83d\udc4b, here are the downloadable backup details for environment ${environmentId}:\\n\\n${downloadable_backupDetails}`\n        );\n    } else {\n        say(`No downloadable backups found for environment ${environmentId}`);\n    }\n});\n\napp.command('\/restore_backup', async ({ command, ack, say }) =&gt; {\n    await ack();\n\n    const [targetEnvironmentId, backupId, environmentName] =\n        command.text.split(' ');\n\n    let response = await restoreBackup(\n        targetEnvironmentId,\n        backupId,\n        environmentName\n    );\n\n    if (response) {\n        say(\n            `Hey \ud83d\udc4b, \\n\\n${response.message}. You can use the \/operation_status slack commmand to check the status of this Operation Id ${response.operation_id}`\n        );\n    }\n});\n\napp.command('\/add_manual_backup', async ({ command, ack, say }) =&gt; {\n    await ack();\n\n    const [environmentId, tag] = command.text.split(' ');\n\n    let response = await addManualBackup(environmentId, tag);\n\n    if (response) {\n        say(\n            `Hey \ud83d\udc4b, \\n\\n${response.message}. You can use the \/operation_status slack commmand to check the status of this Operation Id ${response.operation_id}`\n        );\n    }\n});\n\napp.command('\/delete_backup', async ({ command, ack, say }) =&gt; {\n    await ack();\n\n    let backupId = command.text;\n\n    let response = await deleteBackup(backupId);\n\n    if (response) {\n        say(`Hey \ud83d\udc4b, \\n\\n${response.message}`);\n    }\n});<\/code><\/pre>\n<p>\u00a0<\/p>\n<p data-renderer-start-pos=\"2169\">Os comandos Slash abaixo gerenciam v\u00e1rias tarefas relacionadas a backups: <code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">\/get_backups<\/code> recupera detalhes dos backups espec\u00edficos de um ambiente, <code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">\/get_downloadable_backups<\/code> obt\u00e9m informa\u00e7\u00f5es sobre backups dispon\u00edveis para download, <code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">\/restore_backup<\/code> inicia a restaura\u00e7\u00e3o de um backup com base nos par\u00e2metros fornecidos, <code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">\/add_manual_backup<\/code> permite a cria\u00e7\u00e3o de backups manuais com uma tag opcional para f\u00e1cil identifica\u00e7\u00e3o e <code class=\"code css-1tbex3z\" data-renderer-mark=\"true\">\/delete_backup<\/code> facilita a remo\u00e7\u00e3o de backups espec\u00edficos.<\/p>\n<p>Cada comando reconhece o recebimento, processa a entrada, aciona as respectivas fun\u00e7\u00f5es (<code>getBackups()<\/code>, <code>getDownloadableBackups()<\/code>, <code>restoreBackup()<\/code>, <code>addManualBackup()<\/code>, <code>deleteBackup()<\/code>), formata as respostas e comunica os resultados de volta ao Slack, oferecendo uma interface abrangente para opera\u00e7\u00f5es de backup.<\/p>\n<p>Agora, ao implantar seu aplicativo, voc\u00ea pode visitar o Slack para testar os v\u00e1rios comandos.<\/p>\n<figure id=\"attachment_105526\" aria-describedby=\"caption-attachment-105526\" style=\"width: 1001px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-105526 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/12\/backup-kinsta-slash-command.gif\" alt=\"Interacting with Kinsta API's backup endpoints via Slack Slash commands\" width=\"1001\" height=\"471\"><figcaption id=\"caption-attachment-105526\" class=\"wp-caption-text\">Interagindo com os endpoints de backup da API da Kinsta por meio de comandos Slack Slash.<\/figcaption><\/figure>\n<p>Voc\u00ea pode acessar o c\u00f3digo completo deste projeto em <a href=\"https:\/\/github.com\/kinsta\/SlackBot-Kinsta-API\" target=\"_blank\" rel=\"noopener noreferrer\">nosso reposit\u00f3rio do GitHub<\/a>.<\/p>\n<h2>Resumo<\/h2>\n<p>Neste guia, voc\u00ea aprendeu como usar eficientemente os endpoints de backup mais recentes integrados \u00e0 API da Kinsta. Esses endpoints possibilitam a incorpora\u00e7\u00e3o suave das opera\u00e7\u00f5es de backup nos seus aplicativos de frontend, a cria\u00e7\u00e3o de pipelines e a execu\u00e7\u00e3o de diversas tarefas que facilitam a gest\u00e3o dos seus sites de maneira program\u00e1tica.<\/p>\n<p>A API da Kinsta oferece muitos recursos al\u00e9m desses, portanto, voc\u00ea \u00e9 incentivado a explorar endpoints adicionais e pensar em maneiras inovadoras de aproveit\u00e1-los em seus projetos.<\/p>\n<p><em>Como voc\u00ea atualmente utiliza a API da Kinsta? H\u00e1 alguma funcionalidade espec\u00edfica que voc\u00ea gostaria de ver introduzida ou disponibilizada no futuro?<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Os backups oferecem aos propriet\u00e1rios de sites uma rede de seguran\u00e7a que aumenta a confian\u00e7a em caso de imprevistos. Os usu\u00e1rios do servi\u00e7o de hospedagem gerenciada &#8230;<\/p>\n","protected":false},"author":287,"featured_media":66110,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[951,992,983],"class_list":["post-66109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api","topic-node-js","topic-servicos-kinsta"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Gerencie Backups do WordPress no Slack com a API da Kinsta - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Gerencie Backups do WordPress no Slack com a API da Kinsta\" \/>\n<meta property=\"og:description\" content=\"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-19T14:46:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-02-25T13:17:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Gerencie Backups do WordPress no Slack com a API da Kinsta\",\"datePublished\":\"2023-12-19T14:46:02+00:00\",\"dateModified\":\"2025-02-25T13:17:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/\"},\"wordCount\":2335,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/\",\"name\":\"Gerencie Backups do WordPress no Slack com a API da Kinsta - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg\",\"datePublished\":\"2023-12-19T14:46:02+00:00\",\"dateModified\":\"2025-02-25T13:17:30+00:00\",\"description\":\"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg\",\"width\":1200,\"height\":628},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Gerencie Backups do WordPress no Slack com a API da Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Gerencie Backups do WordPress no Slack com a API da Kinsta - Kinsta\u00ae","description":"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/","og_locale":"pt_PT","og_type":"article","og_title":"Gerencie Backups do WordPress no Slack com a API da Kinsta","og_description":"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!","og_url":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2023-12-19T14:46:02+00:00","article_modified_time":"2025-02-25T13:17:30+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Joel Olawanle","Tempo estimado de leitura":"11 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Gerencie Backups do WordPress no Slack com a API da Kinsta","datePublished":"2023-12-19T14:46:02+00:00","dateModified":"2025-02-25T13:17:30+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/"},"wordCount":2335,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/","url":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/","name":"Gerencie Backups do WordPress no Slack com a API da Kinsta - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg","datePublished":"2023-12-19T14:46:02+00:00","dateModified":"2025-02-25T13:17:30+00:00","description":"Saiba como lidar com backups do WordPress por meio do Slack usando a API da Kinsta. Uma maneira mais f\u00e1cil de gerenciar e garantir a seguran\u00e7a do site!","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-api-backups-1.jpg","width":1200,"height":628},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/backups-wordpress-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinsta.com\/pt\/topicos\/api\/"},{"@type":"ListItem","position":3,"name":"Gerencie Backups do WordPress no Slack com a API da Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/pt\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=66109"}],"version-history":[{"count":10,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66109\/revisions"}],"predecessor-version":[{"id":71265,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/66109\/revisions\/71265"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/translations\/es"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/66109\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/66110"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=66109"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=66109"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=66109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}