Para desenvolver e hospedar um aplicativo no Square Cloud, é essencial seguir uma sequência estruturada de configurações e pré-requisitos.
Este guia técnico abordará todo o processo, desde a configuração inicial até a implantação em produção.
Conta Square Cloud: Cadastre-se através da página de cadastro usando seu e-mail.
Plano Pago Ativo: Garante recursos dedicados e desempenho otimizado para seu aplicativo. Confira nossos planos disponíveis e escolha o mais adequado às suas necessidades.
Uma conta ativa no X (Twitter) é necessária para autenticação e operação do bot. Se você não tem uma, inscreva-se no site oficial do X.
Uma conta de Desenvolvedor X também é necessária para acessar as APIs. Solicite acesso através do Portal do Desenvolvedor X.
Verificação do Node.js: Verifique se o Node.js está instalado em seu sistema. Caso contrário, baixe-o no site oficial do Node.js.
Inicialização do projeto: Crie um novo projeto Node.js executando:
Terminal
npm init -y
Instalação de dependências: Instale as bibliotecas necessárias para o bot:
Terminal
npm install twitter-api-v2
Configuração de variáveis de ambiente: Crie um arquivo .env para armazenar suas credenciais de forma segura (este arquivo não será usado na Square Cloud, mas é uma boa prática local):
Criação do arquivo principal: Desenvolva o arquivo index.js com a estrutura base do bot:
index.js
// Importa módulos necessáriosconst { TwitterApi } = require('twitter-api-v2');// Configure o cliente Twitter com autenticaçãoconst client = new TwitterApi({ appKey: process.env.API_KEY, appSecret: process.env.API_SECRET_KEY, accessToken: process.env.ACCESS_TOKEN, accessSecret: process.env.ACCESS_TOKEN_SECRET,});// Cliente com permissões de leitura e escritaconst rwClient = client.readWrite;// Função para verificar se o bot está funcionandoasync function verifyBot() { try { // Obtém informações do usuário autenticado const user = await rwClient.currentUser(); console.log(`Bot inicializado com sucesso! Usuário: @${user.screen_name}`); return true; } catch (error) { console.error('Erro ao verificar o bot:', error); return false; }}// Função para postar um tweetasync function postTweet(text) { try { const tweet = await rwClient.tweet(text); console.log(`Tweet publicado com sucesso! ID: ${tweet.data.id}`); return tweet; } catch (error) { console.error('Erro ao postar tweet:', error); throw error; }}// Função para responder a mençõesasync function respondToMentions() { try { // Busca menções recentes const mentions = await rwClient.userMentionTimeline({ count: 10, result_type: 'recent' }); for (const tweet of mentions.data) { // Verifica se é uma menção nova (implementar lógica de controle) if (tweet.text.includes('!ping')) { // Responde à menção await rwClient.reply( 'Pong! 🤖 Bot do X funcionando corretamente!', tweet.id ); console.log(`Respondeu à menção de @${tweet.user.screen_name}`); } } } catch (error) { console.error('Erro ao processar menções:', error); }}// Função para buscar e interagir com tweets específicosasync function searchAndInteract(query) { try { // Busca tweets com uma query específica const tweets = await rwClient.search(query, { count: 5, result_type: 'recent' }); for (const tweet of tweets.statuses) { // Curte o tweet await rwClient.like(tweet.id_str); console.log(`Curtiu o tweet de @${tweet.user.screen_name}`); // Espera um pouco entre as ações para evitar rate limiting await new Promise(resolve => setTimeout(resolve, 2000)); } } catch (error) { console.error('Erro ao buscar e interagir:', error); }}// Função principal do botasync function runBot() { console.log('Iniciando bot X...'); // Verifica se o bot está configurado corretamente const botOk = await verifyBot(); if (!botOk) { console.error('A inicialização do bot falhou'); return; } // Exemplo: Postar um tweet de inicialização try { await postTweet('🤖 Bot do X inicializado e rodando na Square Cloud!'); } catch (error) { console.log('Tweet de inicialização falhou, mas o bot continua rodando'); } // Loop principal do bot setInterval(async () => { try { // Verifica e responde a menções a cada 5 minutos await respondToMentions(); // Exemplo: Busca e interage com tweets sobre um tópico específico // await searchAndInteract('#SquareCloud'); } catch (error) { console.error('Erro no loop principal:', error); } }, 5 * 60 * 1000); // 5 minutos console.log('Bot rodando. Pressione Ctrl+C para parar.');}// Manipulação de sinal para encerramento eleganteprocess.on('SIGINT', () => { console.log('\nEncerrando bot X...'); process.exit(0);});process.on('SIGTERM', () => { console.log('\nEncerrando bot X...'); process.exit(0);});// Inicializa o botrunBot();
Após preparar os arquivos do seu projeto, você pode enviá-los para a Square Cloud e hospedar seu projeto.
Para fazer isso, crie um arquivo ZIP contendo todos os arquivos do seu projeto.
Variáveis de Ambiente
Segurança: Nunca inclua suas credenciais de API diretamente no código. Sempre use variáveis de ambiente na Square Cloud.
Na Square Cloud, configure as seguintes variáveis de ambiente através do painel de controle:
API_KEY: Sua chave de API do X
API_SECRET_KEY: Sua chave secreta de API do X
ACCESS_TOKEN: Seu token de acesso
ACCESS_TOKEN_SECRET: Seu segredo do token de acesso
Após fazer o upload do seu arquivo zip, você precisará configurar o nome, o arquivo principal ou o ambiente de execução e outras configurações do seu projeto.
Se você estiver enviando um projeto web, certifique-se de selecionar “Publicação na Web” e definir um subdomínio para o seu projeto.
3
Faça o deploy do projeto
Por fim, clique no botão “Deploy” para hospedar seu projeto no Square Cloud.
Após o deploy, você poderá monitorar o status e os registros do seu projeto no painel.
Para usar esse método, você precisa criar um arquivo de configuração chamado squarecloud.app no diretório raiz do seu projeto. Esse arquivo conterá a configuração necessária para o seu projeto.
Saiba mais sobre: Como criar arquivo de configuração da Square Cloud.
O arquivo squarecloud.app é um arquivo de configuração que será usado para configurar seu aplicativo; ele será usado para definir seu ambiente.
1
Primeiro Passo
Primeiro, você precisa ter a CLI instalada em seu ambiente. Se você ainda não a possui, execute o seguinte comando em seu terminal:
npm install -g @squarecloud/cli
Se você já a possui, recomendamos atualizá-la. Para fazer isso, execute o seguinte comando em seu terminal:
Agora, para autenticar e usar outros comandos da CLI, você encontrará sua chave de autorização aqui clicando em “Solicitar Chave da API”. Após obter sua chave de autorização, execute o seguinte comando:
squarecloud auth login
3
Terceiro Passo
Finalmente, para fazer o deploy da sua aplicação para a Square Cloud usando a CLI, você precisa executar o seguinte comando:
Para aprofundar seu conhecimento sobre o desenvolvimento de bots do X usando twitter-api-v2, consulte a documentação oficial da biblioteca twitter-api-v2. A documentação fornece guias detalhados, tutoriais avançados e referências completas de API para maximizar sua implementação.Veja também:
// Função auxiliar para tentar novamente uma operação em caso de falhaasync function retryOperation(operation, maxRetries = 3) { for (let i = 0; i < maxRetries; i++) { try { return await operation(); } catch (error) { console.error(`Tentativa ${i + 1} falhou:`, error.message); if (i === maxRetries - 1) { throw error; } // Espera antes de tentar novamente await new Promise(resolve => setTimeout(resolve, 2000 * (i + 1))); } }}
Se você continuar enfrentando dificuldades técnicas, nossa equipe de suporte especializada está disponível para auxiliá-lo. Entre em contato conosco e teremos prazer em ajudá-lo a resolver qualquer questão.