[ Estudo? ] Bot para o telegram usando a API do TabNews

Estava atoa e decidir ver se existia novas publicações por aqui e me lembrei da publicação do CaioDomingues falando sobre o seu bot do discord que o notifica sobre novas publicações e com isso me lembrei sobre algo que ocorreu comigo a algum tempo com um projeto que foi hackeado e o hacker recebia as informações por um bot do telegram e fizemos essa brincadeira com ele. Peço desculpas pelas palavras de baixo calão.

Com isso cheguei na seguinte duvida consigo desenvolver um bot para o telegram que me notifique sobre novas publicações? nunca desenvolvi um bot para discord ou telegram nem mesmo usei python que vi ser a linguagem usada em casos assim, claramente não é algo que eu preciso seria apenas um estudo para momentos de tédio dito isso caso alguem tenha algum tutorial sobre isso ou informações sobre a API do TabNews, dei uma procurada e não encontrei, vou estar criando um projeto no GitHub e anexando aqui caso tenham interesse.

Cara, que massa saber que você se inspirou no que fiz 👀. E olha, é possível sim! Eu tenho um bot de telegram também hahahaha, mas eu vou deixar esse desafio pra outra pessoa.

Se quiser, posso auxiliar no desenvolvimento :D

E ae EnzoVilas beleza? Um tempo atrás fiz umas compras na China e queria um bot pra rastrear essas encomendas, mas a transportadora não tinha integração com lugar nenhum. Fiz uma engenharia reversa na API deles e consegui criar um bot super simples pra acompanhar minhas encomendas: https://github.com/Tashima42/telegram-tracking-orders-bot Se eu puder dar uma dica, é: use uma biblioteca. A API do telegram é super completa e por isso um pouquinho complexa, usando uma biblioteca muita coisa fica super simples.

Estou fazendo de maneira "porca", por assim dizer, bem chutado sem estudar nada e fazendo gambiarras onde poço, o objetivo é primeiro ver funcionando e depois ir modelando. Atualmente já criei o Webhook e estou respondendo os comandos de imediato, atualmente somente respostas pré-definidas, nem mesmo entrei em contato com a API do tabnews ainda, estou tendo um problema com a minha função para cadastro na tabela. (print do codigo : https://prnt.sc/9D_PFF21vF8E) Quando rodo a função junto ao comando "Acompanhar" ele nem mesmo me retorna a resposta do sendMessage, não sei oque causa isso minha função tem um código para gerar log, mas não está sendo gerado por algum motivo. Talvez seja algo que esteja obvio para alguém experiente, mas ainda me considero um "júnior" e como mencionei antes isso é apenas para aprendizado então enquanto eu estiver quebrando a cabeça estou aprendendo.
Não tenho ideia de como te ajudar com esse bug diretamente, mas uma recomendação geral pra quando você for desenvolver, é tentar deixar o código um pouco menos aninhado. Isso aqui é um exemplo de um código aninhado: ```js function sendMessage(message) { if(message.text === "/start") { if(message.user.name) { sendGreeting(message.user.name) } else if (message.user.id) { addToSubscribedList(message.user.id) } else { if(message.sent === false) { addToMessageRetry(message) } } } } ``` Em vez de colocar um monte de ifs um dentro do outro, usar funcoes mais especificas e evitar deixar o corpo delas muito grande. ```js function sendMessage() { sendGreeting() addToSubscribedList() addToMessageRetry() } ``` Obviamente esse não é um caso real, mas a ideia é que o código vai ficar mais limpo, mais legível e vai ser mais fácil pra você encontrar bugs.

Não me recordo agora em qual curso na internet ouvi sobre isso, a algum tempo quando ainda estava aprendendo a programar o programador do curso que eu estava assistindo mencionou um princípio para programadores em inglês algo como "mantenha simples estúpido". No início achei algo idiota, mas com o tempo e conforme ia programando entendi, quanto mais simples o código for mais simples o trabalho sera, sem ficar "enchendo linguiça", por assim dizer, acredito que falhei em seguir esse principio.

Vou procurar melhorar nesse quesito, adorei o conselho, novamente como eu disse antes o objetivo aqui e aprender e adquirir o máximo de conhecimento e experiencia possível.

esse é o principio KISS: "KISS is an acronym which means Keep It Simple Stupid. I don't like to use the word Stupid because I know my readers aren't stupid, that’s why I choose to translate it to Keep It Super Simple." https://dev.to/kwereutosu/the-k-i-s-s-principle-in-programming-1jfg

Enzo, editei sua imagem para esconder o apiToken (não sei se isso era uma informação sensível, mas assumi que era e tentei proteger) e também mandatoriamente escondi os xingamentos. Por favor, peço que evite de postar conteúdos assim novamente.

Em paralelo, o TabNews é um projeto API First e tudo é construído em cima dela. Não temos documentação, mas a parte de conteúdos é tão simples quanto prefixar qualquer URL aqui do site com /api/v1/contents. Usando como exemplo essa sua postagem aqui:

https://www.tabnews.com.br/api/v1/contents/EnzoVilas/estudo-bot-para-o-telegram-usando-a-api-do-tabnews

Para pegar todas a árvore de respostas, basta anexar /children na URL:

https://www.tabnews.com.br/api/v1/contents/EnzoVilas/estudo-bot-para-o-telegram-usando-a-api-do-tabnews/children

Para pegar todos os conteúdos publicados na raiz do site:

https://www.tabnews.com.br/api/v1/contents

Para paginar eles (page e per_page):

https://www.tabnews.com.br/api/v1/contents?page=1&per_page=1

Agradeço e isso não ira se repetir, o apiToken acredito que nem seja mais valido isso ocorreu a um bom tempo e mesmo se for é referente ao bot de um "hacker" então sem problemas.

Agradeço pela breve explicação vou dar início a esse projeto hoje mesmo. Caso alguem tenha interesse estou acompanhando os videos do WDEV, um youtuber relativamente pequeno mas com otimos conteudos, sobre fazer bot para o telegram com php linguagem com a qual já estou abituado, segue o link para o video dele que estou vendo no momento.

Peço novamente desculpas pelas palavras de baixo calão, por razões pessoais nunca levei coisas assim a serio, mas isso não torna correto, me atentarei para ocasiões futuras.

Enzo, show, fique tranquilo quanto a postagem. O TabNews é novo e precisaremos de um bom tempo até todo mundo entender o que pode ser publicado. E sobre a API do TabNews, não deixe de voltar aqui e publicar o seu avanço ou suas dúvidas 🤝
Será que não cabe fazer um parser pra checar, pelo menos em texto, se não existem coisas como "tokens" vazando e alertar na mensagem antes da pessoa publicar?
com certeza é uma ideia válida mas acho que tem outro recursos que podem ser implementados no Tab News que levam muito menos tempo para implementar, tem um custo menor e trás mais benefícios Para fazer um parser desse precisaria de um programa para converter imagem em texto, ter uma lista de palavras-chaves proíbidas ou inteligência artificial que deveria ser treinada para esse fim. Sinceramente, acho que no momento não é viável.
Valeu pela dica, estava procurando justamente isso!

recomendo criar bot no telegram usando aiogram, Uma biblioteca desenvolvida pela comunidade open-source usando python, Focada totalmente na responsividade, Totalmente assíncrona! e com vários benefícios! Como uma comunidade brasileira!

https://github.com/aiogram/aiogram