[{"id":"5a992ade-d284-42f0-8032-a6a4686e9512","parent_id":"7555a62d-d5b6-4415-a027-92cce595928d","owner_id":"07aa4853-57eb-465b-a18b-afb760ee0f4d","slug":"c18afc4e-d1c8-434d-be40-2e82f310461f","title":null,"body":"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.\n\nSe quiser, posso auxiliar no desenvolvimento :D","status":"published","source_url":null,"published_at":"2022-06-06T19:56:37.404Z","created_at":"2022-06-06T19:56:37.404Z","updated_at":"2022-06-06T19:56:37.404Z","deleted_at":null,"type":"content","owner_username":"caiodomingues","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[],"children_deep_count":0},{"id":"9508a458-89e2-4e58-8c6e-692d2fef82ad","parent_id":"7555a62d-d5b6-4415-a027-92cce595928d","owner_id":"013c8086-39c1-4091-9278-3b58c269355e","slug":"8008ef02-c9df-41f5-bc33-cee57cd60491","title":null,"body":"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.\nFiz 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\nSe 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.","status":"published","source_url":null,"published_at":"2022-06-06T12:39:09.643Z","created_at":"2022-06-06T12:39:09.644Z","updated_at":"2022-06-06T12:39:09.644Z","deleted_at":null,"type":"content","owner_username":"tashima42","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[{"id":"03c3751d-fcda-4faf-b33c-7d1b6ef95327","parent_id":"9508a458-89e2-4e58-8c6e-692d2fef82ad","owner_id":"b6934b20-9ceb-4b02-b8b1-28976147d62a","slug":"5458abe2-093c-4507-9339-170ef6c39890","title":null,"body":"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.\nAtualmente 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.\n\n(print do codigo : https://prnt.sc/9D_PFF21vF8E)\n\nQuando 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.\nTalvez 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.","status":"published","source_url":null,"published_at":"2022-06-06T13:22:44.810Z","created_at":"2022-06-06T13:22:44.811Z","updated_at":"2022-06-06T13:22:44.811Z","deleted_at":null,"type":"content","owner_username":"EnzoVilas","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[{"id":"1f82dd7b-1959-468a-923d-a538e292508a","parent_id":"03c3751d-fcda-4faf-b33c-7d1b6ef95327","owner_id":"013c8086-39c1-4091-9278-3b58c269355e","slug":"4de483f0-38f3-4e3c-9b3e-df3a310aae85","title":null,"body":"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.\n\nIsso aqui é um exemplo de um código aninhado:\n```js\nfunction sendMessage(message) {\n    if(message.text === \"/start\") {\n        if(message.user.name) {\n           sendGreeting(message.user.name)\n        } else if (message.user.id) {\n           addToSubscribedList(message.user.id)\n        } else {\n           if(message.sent === false) {\n               addToMessageRetry(message)\n           }\n        }\n     }\n }\n```\n\nEm vez de colocar um monte de ifs um dentro do outro, usar funcoes mais especificas e evitar deixar o corpo delas muito grande.\n\n```js\nfunction sendMessage() {\n    sendGreeting()\n    addToSubscribedList()\n    addToMessageRetry()\n}\n```\n\nObviamente 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.","status":"published","source_url":null,"published_at":"2022-06-06T13:34:16.137Z","created_at":"2022-06-06T13:34:16.138Z","updated_at":"2022-06-06T13:34:52.202Z","deleted_at":null,"type":"content","owner_username":"tashima42","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[{"id":"b5edecb2-5800-4e7e-8dca-9edc56ce146f","parent_id":"1f82dd7b-1959-468a-923d-a538e292508a","owner_id":"b6934b20-9ceb-4b02-b8b1-28976147d62a","slug":"165dc7da-24ed-4d43-af52-a9431ec438fb","title":null,"body":"<p>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\".\nNo 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.</p>\n<p>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.</p>","status":"published","source_url":null,"published_at":"2022-06-06T13:50:51.763Z","created_at":"2022-06-06T13:50:51.765Z","updated_at":"2022-06-06T13:50:51.765Z","deleted_at":null,"type":"content","owner_username":"EnzoVilas","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[{"id":"c4d20da9-089a-41d7-a4fc-6bd736ac4348","parent_id":"b5edecb2-5800-4e7e-8dca-9edc56ce146f","owner_id":"32c052f0-6ea4-4e80-ae7e-475602f19374","slug":"0b17b79f-0908-43de-9c62-3133a55799fb","title":null,"body":"esse é o principio KISS: \n\n\"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.\"\nhttps://dev.to/kwereutosu/the-k-i-s-s-principle-in-programming-1jfg","status":"published","source_url":null,"published_at":"2022-06-06T21:23:40.553Z","created_at":"2022-06-06T21:23:40.554Z","updated_at":"2022-06-06T21:23:40.554Z","deleted_at":null,"type":"content","owner_username":"nahmias","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[],"children_deep_count":0}],"children_deep_count":1}],"children_deep_count":2}],"children_deep_count":3}],"children_deep_count":4},{"id":"a7288aba-4074-4a39-b15f-ad33e7293163","parent_id":"7555a62d-d5b6-4415-a027-92cce595928d","owner_id":"07ea33ea-78bd-4578-bad2-1cf5323cab07","slug":"504b7d36-5df4-47e0-b8e8-037ef2b76e65","title":null,"body":"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.\n\nEm 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:\n\nhttps://www.tabnews.com.br/api/v1/contents/EnzoVilas/estudo-bot-para-o-telegram-usando-a-api-do-tabnews\n\nPara pegar todas a árvore de respostas, basta anexar `/children` na URL:\n\nhttps://www.tabnews.com.br/api/v1/contents/EnzoVilas/estudo-bot-para-o-telegram-usando-a-api-do-tabnews/children\n\nPara pegar todos os conteúdos publicados na raiz do site:\n\nhttps://www.tabnews.com.br/api/v1/contents\n\nPara paginar eles (`page` e `per_page`):\n\nhttps://www.tabnews.com.br/api/v1/contents?page=1&per_page=1","status":"published","source_url":null,"published_at":"2022-06-05T04:42:43.281Z","created_at":"2022-06-05T04:42:43.282Z","updated_at":"2022-06-05T04:42:43.282Z","deleted_at":null,"type":"content","owner_username":"filipedeschamps","tabcoins":1,"tabcoins_credit":0,"tabcoins_debit":0,"children":[{"id":"ba26ade3-37d0-40af-aceb-97437e25d2d6","parent_id":"a7288aba-4074-4a39-b15f-ad33e7293163","owner_id":"b6934b20-9ceb-4b02-b8b1-28976147d62a","slug":"a596f7b4-cba8-4180-90fd-62c66e24b1d9","title":null,"body":"<p>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.</p>\n<p>Agradeço pela breve explicação vou dar início a esse projeto hoje mesmo.\nCaso alguem tenha interesse estou acompanhando os videos do <a href=\"https://www.youtube.com/c/WDEVoficial\">WDEV</a>, 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 <a href=\"https://www.youtube.com/watch?v=zpZr3ek6pks\">link</a> para o video dele que estou vendo no momento.</p>\n<p>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.</p>","status":"published","source_url":null,"published_at":"2022-06-05T12:41:52.462Z","created_at":"2022-06-05T12:41:52.464Z","updated_at":"2022-06-05T12:41:52.464Z","deleted_at":null,"type":"content","owner_username":"EnzoVilas","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[{"id":"b8dcf547-8953-46fb-91e6-01b1576c8935","parent_id":"ba26ade3-37d0-40af-aceb-97437e25d2d6","owner_id":"07ea33ea-78bd-4578-bad2-1cf5323cab07","slug":"7a5909ff-eac5-4104-aba9-d10097db9278","title":null,"body":"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.\n\nE sobre a API do TabNews, não deixe de voltar aqui e publicar o seu avanço ou suas dúvidas 🤝","status":"published","source_url":null,"published_at":"2022-06-05T17:25:16.054Z","created_at":"2022-06-05T17:25:16.056Z","updated_at":"2022-06-05T17:25:16.056Z","deleted_at":null,"type":"content","owner_username":"filipedeschamps","tabcoins":1,"tabcoins_credit":0,"tabcoins_debit":0,"children":[{"id":"b0468247-a46b-4ce7-9297-81c57ad24a35","parent_id":"b8dcf547-8953-46fb-91e6-01b1576c8935","owner_id":"07aa4853-57eb-465b-a18b-afb760ee0f4d","slug":"12839e73-4ec3-430c-8ea5-d42ab551424e","title":null,"body":"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?","status":"published","source_url":null,"published_at":"2022-06-06T19:57:46.649Z","created_at":"2022-06-06T19:57:46.650Z","updated_at":"2022-06-06T19:57:46.650Z","deleted_at":null,"type":"content","owner_username":"caiodomingues","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[{"id":"1096c34d-c0ff-4c49-8f4b-0066985bc5ab","parent_id":"b0468247-a46b-4ce7-9297-81c57ad24a35","owner_id":"4976c03b-4ebb-4864-b7d3-cb722eb498f4","slug":"b64a4c0c-137b-4e04-9c3a-0baa0f50bb9b","title":null,"body":"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\n\nPara 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.\n\nSinceramente, acho que no momento não é viável.","status":"published","source_url":null,"published_at":"2022-06-13T01:53:29.611Z","created_at":"2022-06-13T01:53:29.611Z","updated_at":"2022-06-13T01:53:29.611Z","deleted_at":null,"type":"content","owner_username":"felintodev","tabcoins":2,"tabcoins_credit":1,"tabcoins_debit":0,"children":[],"children_deep_count":0}],"children_deep_count":1}],"children_deep_count":2}],"children_deep_count":3},{"id":"4aa5fb23-4979-405a-8a71-838fa2290839","parent_id":"a7288aba-4074-4a39-b15f-ad33e7293163","owner_id":"e4d7ba90-b4c6-411a-abac-45f843769b26","slug":"e52043cb-734d-4fe5-8cae-4fc4f49a1bf8","title":null,"body":"Valeu pela dica, estava procurando justamente isso!","status":"published","source_url":null,"published_at":"2022-06-11T16:32:18.334Z","created_at":"2022-06-11T16:32:18.336Z","updated_at":"2022-06-11T16:32:18.336Z","deleted_at":null,"type":"content","owner_username":"finn","tabcoins":1,"tabcoins_credit":0,"tabcoins_debit":0,"children":[],"children_deep_count":0}],"children_deep_count":5},{"id":"d55c09ef-8bb6-47b7-b4f7-5e802574a567","parent_id":"7555a62d-d5b6-4415-a027-92cce595928d","owner_id":"05998b78-39ea-49bd-8a7e-5f9545e17f6b","slug":"41c86f6f-1cb8-498c-ae5b-118ed0466339","title":null,"body":"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!\n\nhttps://github.com/aiogram/aiogram","status":"published","source_url":null,"published_at":"2022-11-24T04:01:05.102Z","created_at":"2022-11-24T04:01:05.053Z","updated_at":"2022-11-24T04:01:05.053Z","deleted_at":null,"type":"content","owner_username":"pablovaz","tabcoins":1,"tabcoins_credit":0,"tabcoins_debit":0,"children":[],"children_deep_count":0}]