- Blog ➔
- Programação ↴
Usando Google Fitness API para calcular meu TDEE e mais
De calorias para código: Integrando Google Fitness API para insights personalizados de saúde
Escrito em 2 de agosto de 2023 - 🕒 16 min. de leituraQuer alcançar os seus objetivos de fitness, como perder peso ou ganhar músculos? Tudo se resume a saber quantas calorias você queima em um dia, o que é chamado de Gasto Energético Diário Total (TDEE).
Pense no TDEE como o número dourado que guia as suas escolhas de alimentação e treino. Você precisa conhecê-lo para descobrir quanto comer se quiser manter, ganhar alguns quilos ou emagrecer.
Agora, existem várias ferramentas online que podem estimar o seu TDEE, mas obter dados do seu próprio corpo lhe dará o valor real.
Eu entendo, calcular esses números pode ser chato, especialmente se a matemática não for a sua praia. Mas ei, a Google Fitness API está aqui para te ajudar nessa!
Neste post, mostraremos como usar a Google Fitness API para calcular o seu TDEE e acompanhar o seu progresso ao longo do tempo.
Claro, para que isso funcione, você precisa monitorar consistentemente o seu peso e ingestão de alimentos. Eu recomendo obter uma balança de bioimpedância, que pode medir o seu peso, percentual de gordura corporal e massa muscular e o aplicativo Lifesum para rastrear a sua alimentação.
Usando a Google Fitness API
Já entendeu o básico sobre o TDEE? Show, agora vamos mergulhar em como podemos obter essas informações usando a Google Fitness API. Essa ferramenta bacana permite que programadores obtenham dados do Google Fit – esse é o aplicativo que coleta informações de saúde do seu telefone, smartwatches e outros aplicativos.
Para começar com a Google Fitness API, primeiro, vá ao Google Cloud Console e ative a Fitness API. Depois, precisaremos criar credenciais para o nosso projeto, para podermos acessar a API. Para obter mais detalhes, consulte o Guia de primeiros passos.
Uma vez que tudo esteja configurado, é só usar a API para colocar as mãos em alguns dados suculentos do Google Fit. Estamos falando de estatísticas de peso e alimentação, que nos ajudarão a acertar o cálculo do nosso TDEE.
Recuperando e Analisando os Dados
Agora que temos a nossa Google Fitness API configurada e pronta para usar, é hora de começar a recuperar e analisar os dados de que precisamos para calcular o nosso TDEE. O primeiro passo é fazer uma solicitação à API, pedindo os nossos dados de peso e nutrição dos últimos 30 dias.
Aqui está um exemplo de como essa solicitação pode ser feita:
const { google } = require('googleapis');
const fetchData = async () => {
  const auth = await google.auth.fromJSON({
    type: process.env.TOKEN_TYPE,
    client_id: process.env.CLIENT_ID,
    client_secret: process.env.CLIENT_SECRET,
    refresh_token: process.env.REFRESH_TOKEN,
  });
  auth.scopes = [
    'https://www.googleapis.com/auth/fitness.nutrition.read',
    'https://www.googleapis.com/auth/fitness.body.read',
  ];
  const endDate = new Date();
  const startDate = new Date();
  startDate.setDate(startDate.getDate() - 30); // past 30 days
  const startTimeNs = startDate.getTime() * 1000000;
  const endTimeNs = endDate.getTime() * 1000000;
  const weightData = await fetchDataForDataSource(
    'derived:com.google.weight:com.google.android.gms:merge_weight',
    auth,
    startTimeNs,
    endTimeNs
  );
  const fatPercentageData = await fetchDataForDataSource(
    'derived:com.google.body.fat.percentage:com.google.android.gms:merged',
    auth,
    startTimeNs,
    endTimeNs
  );
  const nutritionData = await fetchDataForDataSource(
    'derived:com.google.nutrition:com.google.android.gms:merged',
    auth,
    startTimeNs,
    endTimeNs
  );
};A função google.auth.fromJSON é usada para criar um objeto de autenticação que pode ser utilizado para fazer solicitações à Google Fitness API. Em seguida, definimos os escopos para os quais queremos solicitar dados, que neste caso são https://www.googleapis.com/auth/fitness.nutrition.read e https://www.googleapis.com/auth/fitness.body.read. Depois disso, definimos a data de início e a data de término para a nossa solicitação, que são 30 dias atrás e hoje, respectivamente. Finalmente, chamamos a função fetchDataForDataSource três vezes, uma para os dados de peso, uma para os dados de percentual de gordura e uma para os dados de nutrição.
Mas o que a função fetchDataForDataSource faz? Vamos dar uma olhada:
const fitness = google.fitness('v1');
const fetchDataForDataSource = async (dataSourceId, auth, startTimeNs, endTimeNs) => {
  const response = await fitness.users.dataSources.datasets.get({
    userId: 'me',
    dataSourceId,
    datasetId: `${startTimeNs}-${endTimeNs}`,
    auth,
  });
  return response.data;
};Com a API de fitness do googleapis, podemos fazer solicitações à Google Fitness API. Neste caso, estamos usando o método users.dataSources.datasets.get para obter dados de uma fonte de dados específica. Passamos o userId como me para obter dados do usuário atual, o dataSourceId que queremos obter dados, e o datasetId, que é uma combinação do horário de início e término em nanossegundos. Finalmente, passamos o objeto de autenticação que criamos anteriormente.
Agregando os Dados
Vamos dar uma olhada nos dados que recebemos da Google Fitness API:
Weight
{
  "minStartTimeNs": "1690662651313000000",
  "maxEndTimeNs": "1691008251313000000",
  "dataSourceId": "derived:com.google.weight:com.google.android.gms:merge_weight",
  "point": [
    {
      "startTimeNanos": "1690961397000000000",
      "endTimeNanos": "1690961397000000000",
      "dataTypeName": "com.google.weight",
      "originDataSourceId": "raw:com.google.weight:cn.fitdays.fitdays:",
      "value": [
        {
          "fpVal": 77.59,
          "mapVal": []
        }
      ],
      "modifiedTimeMillis": "1690963181330"
    }
  ]
}Fat Percentage
{
  "minStartTimeNs": "1690662651313000000",
  "maxEndTimeNs": "1691008251313000000",
  "dataSourceId": "derived:com.google.body.fat.percentage:com.google.android.gms:merged",
  "point": [
    {
      "startTimeNanos": "1690961397000000000",
      "endTimeNanos": "1690961397000000000",
      "dataTypeName": "com.google.body.fat.percentage",
      "originDataSourceId": "raw:com.google.body.fat.percentage:cn.fitdays.fitdays:",
      "value": [
        {
          "fpVal": 20,
          "mapVal": []
        }
      ],
      "modifiedTimeMillis": "1690963181468"
    }
  ]
}Nutrition
{
  "minStartTimeNs": "1690662651313000000",
  "maxEndTimeNs": "1691008251313000000",
  "dataSourceId": "derived:com.google.nutrition:com.google.android.gms:merged",
  "point": [
    {
      "startTimeNanos": "1690961397000000000",
      "endTimeNanos": "1690961397000000000",
      "dataTypeName": "com.google.nutrition",
      "originDataSourceId": "raw:com.google.nutrition:com.sillens.shapeupclub:health_platform",
      "value": [
        {
          "mapVal": [
            {
              "key": "fat.total",
              "value": {
                "fpVal": 16.349998474121094
              }
            },
            {
              "key": "sodium",
              "value": {
                "fpVal": 0
              }
            },
            {
              "key": "potassium",
              "value": {
                "fpVal": 0
              }
            },
            {
              "key": "fat.unsaturated",
              "value": {
                "fpVal": 3
              }
            },
            {
              "key": "fat.saturated",
              "value": {
                "fpVal": 13.34999942779541
              }
            },
            {
              "key": "protein",
              "value": {
                "fpVal": 5.25
              }
            },
            {
              "key": "carbs.total",
              "value": {
                "fpVal": 60.45000076293945
              }
            },
            {
              "key": "cholesterol",
              "value": {
                "fpVal": 0
              }
            },
            {
              "key": "calories",
              "value": {
                "fpVal": 412.5
              }
            },
            {
              "key": "sugar",
              "value": {
                "fpVal": 42.599998474121094
              }
            },
            {
              "key": "dietary_fiber",
              "value": {
                "fpVal": 0
              }
            }
          ]
        },
        {
          "intVal": 1,
          "mapVal": []
        },
        {
          "stringVal": "Salted caramel cornetto",
          "mapVal": []
        }
      ],
      "modifiedTimeMillis": "1690805813623"
    }
  ]
}Como você pode ver, os dados estão num formato que não é muito fácil de trabalhar. Precisamos analisar esses dados e agregá-los num formato utilizável.
const curatedWeightData = extractBodyData(weightData, 'weight');
const curatedFatPercentageData = extractBodyData(fatPercentageData, 'fatPercentage');
const curatedNutritionData = aggregateNutritionData(extractNutritionData(nutritionData));Após usar essas funções misteriosas, os seus dados ficarão assim:
console.log(curatedWeightData);
// [{ date: '02/08/2023', weight: 77.5999984741211 }]
console.log(curatedFatPercentageData);
// [{ date: '02/08/2023', fatPercentage: 20 }]
console.log(curatedNutritionData);
// [{ date: '02/08/2023', foods: ['Salted caramel cornetto'], protein: 5.25, fat: 16.349998474121094, carbs: 60.45000076293945, fiber: 0, sugar: 42.599998474121094 }]Ok, agora vamos escrever as funções que fazem essa mágica, ou melhor, vamos pedir ao Chat GPT para fazer isso para nós.
function nanosToDateString(nanos) {
  const milliseconds = parseInt(nanos, 10) / 1000000;
  return new Date(milliseconds).toLocaleDateString('en-GB');
}
function extractBodyData(jsonArray, type) {
  return jsonArray.point.map((dataPoint) => {
    const date = nanosToDateString(dataPoint.startTimeNanos);
    const data = dataPoint.value[0].fpVal;
    return { date, [type]: data };
  });
}E para a agregação de dados nutricionais:
function aggregateNutritionData(nutritionArray) {
  const aggregatedData = {};
  nutritionArray.forEach((nutrition) => {
    const { date, foodName, ...nutritionValues } = nutrition;
    if (!aggregatedData[date]) {
      aggregatedData[date] = {
        date,
        foods: [foodName],
        ...nutritionValues,
      };
    } else {
      aggregatedData[date].foods.push(foodName);
      Object.keys(nutritionValues).forEach((key) => {
        if (Object.prototype.hasOwnProperty.call(nutritionValues, key)) {
          aggregatedData[date][key] += nutritionValues[key];
        }
      });
    }
  });
  return Object.values(aggregatedData);
}A última coisa a fazer é mesclar essas 3 matrizes em uma e classificá-la por data.
function mergeDataArrays(...arrays) {
  const mergedData = {};
  arrays.forEach((array) => {
    array.forEach((item) => {
      const { date, ...rest } = item;
      if (!mergedData[date]) {
        mergedData[date] = { date, ...rest };
      } else {
        Object.assign(mergedData[date], rest);
      }
    });
  });
  return Object.values(mergedData);
}
console.log(mergeDataArrays(curatedWeightData, curatedFatPercentageData, curatedNutritionData));
// [{"date":"02/08/2023","weight":77.5999984741211,"fatPercentage":20,"foods":["Salted caramel cornetto"],"protein":5.25,"fat":16.349998474121094,"carbs":60.45000076293945,"fiber":0,"sugar":42.599998474121094}]Tudo bem, é hora de usar esses dados para obter algumas informações. Na verdade, precisamos de mais uma coisa antes de podermos fazer isso.
Massa muscular e composição de gordura corporal
Antes de mergulhar nos cálculos, precisamos entender como o músculo e a gordura estão distribuídos no corpo.
Eu queria descobrir quantas calorias existem em 1kg de músculo e 1kg de gordura, então comecei a procurar livros no Google Books para encontrar a composição exata do tecido muscular e da gordura, e encontrei algumas informações em The Nutritionist Food, Nutrition, and Optimal Health By Robert Wildman.
      
   
    
Mas eu ainda precisava saber qual é o custo energético para construir esse 1kg de músculo e 1kg de gordura, então, para isso, perguntei ao ChatGPT (em inglês e traduzido para essa postagem).
Olá. Qual é a composição exata em porcentagens de 1kg de músculo esquelético e 1kg de tecido adiposo? Além disso, forneça a fonte da informação. Por favor, me dê uma resposta curta, obrigado.
Claro! Aqui está uma resposta curta para a composição geral de 1kg de músculo esquelético e 1kg de tecido adiposo:
Músculo Esquelético (1kg):
- Água: ~75%
- Proteína: ~20%
- Gorduras: ~5%
- Outros (minerais, glicogênio, etc.): Quantidades vestigiais
Tecido Adiposo (1kg):
- Lipídios: ~80-90%
- Água: ~10-20%
- Proteína: ~2%
- Outros (minerais, etc.): Quantidades vestigiais
Por favor, note que esses valores podem variar dependendo de fatores como idade, sexo, dieta e saúde geral. A informação é baseada no entendimento científico geral e pode ser encontrada em vários livros de fisiologia e anatomia humana, como “Human Anatomy & Physiology” de Elaine N. Marieb e Katja Hoehn.
E qual é a eficiência de síntese em porcentagem para construir 1 grama de proteína muscular e 1 grama de lipídios? Além disso, forneça a fonte da informação. Por favor, me dê uma resposta curta, obrigado.
A eficiência de síntese para construir proteína muscular e lipídios varia amplamente dependendo de fatores como espécie, dieta, idade e saúde. No entanto, uma estimativa geral pode ser fornecida:
- Para proteína muscular, a eficiência é geralmente em torno de 20-25%. Isso significa que apenas cerca de 20-25% dos aminoácidos consumidos são incorporados à proteína muscular.
- Para lipídios, a eficiência de conversão de gorduras dietéticas pode ser maior, em torno de 90-95%.
Esses números são estimativas aproximadas e podem variar significativamente. A informação é derivada do conhecimento geral em bioquímica nutricional e pode ser encontrada em livros como “Biochemical, Physiological, and Molecular Aspects of Human Nutrition” de Martha H. Stipanuk e Marie A. Caudill, e artigos científicos sobre o assunto. Sempre consulte pesquisas específicas ou um profissional da área para informações mais precisas adaptadas a uma situação particular.
Legal. Vamos fazer alguns cálculos agora!
Cálculo do músculo
Agora que sabemos que um quilograma de músculo é composto por 20% de proteína e 5% de gordura. Com 1g de proteína tendo 4 calorias e 1g de gordura contendo 9 calorias, isso significa que 1kg de músculo tem 800 calorias de proteína e 450 de gordura, totalizando 1250 calorias.
Cálculo de gordura
Quanto à gordura, um quilograma é composto por 85% de lipídios e 2% de proteína. Com 1g de lipídios tendo 9 calorias, 1g de proteína tendo 4 calorias, isso significa que 1kg de gordura tem 7650 calorias de lipídios e 80 calorias de proteína, totalizando 7730 calorias.
Custo de síntese
Quando se trata de construir os componentes essenciais do nosso corpo, a eficiência varia para diferentes substâncias.
Para proteínas, a eficiência do nosso corpo é de cerca de ~23%. Isso significa que para cada 1g de proteína, que tem 4kcal, precisamos de cerca de ~17kcal para produzi-la. Pense assim: 4kcal vão para os aminoácidos reais na proteína, e as outras 13kcal são a energia usada no processo de construção.
Agora, os lipídios são uma história diferente. Nosso corpo é um pouco mais eficiente aqui, em ~93%. Então, para 1g de lipídios, que tem 9kcal, só leva cerca de 10kcal para produzi-lo. São 9kcal para os aminoácidos nos lipídios, e apenas 1kcal para a síntese.
Calculando o custo energético
Então, vamos entender todos esses números e ver o que eles significam para o custo energético de construir músculo e gordura.
Para o músculo, temos 1kg com 200g de proteína e 50g de lipídios. Como leva cerca de 17kcal para fazer 1g de proteína e 10kcal para 1g de lipídios, o custo energético total para 1kg de músculo é:
- Proteína: 200 x 17 = 3400kcal
- Gordura: 50 x 10 = 500kcal
- Total Geral: 3400 + 500 = 3900kcal
Agora, para a gordura corporal, com 1kg tendo 850g de lipídios e 20g de proteína, o custo energético total é:
- Lipídios: 850 x 10 = 8500kcal
- Proteína: 20 x 17 = 340kcal
- Total Geral: 8500 + 340 = 8840kcal
Então, aí está! Com esses números, vou adicionar as seguintes constantes ao meu código:
const CALORIES_STORED_KG_FAT = 7730;
const CALORIES_BUILD_KG_FAT = 8840;
const CALORIES_STORED_KG_MUSCLE = 1250;
const CALORIES_BUILD_KG_MUSCLE = 3900;Lembrete rápido de que essas são todas estimativas, e os números reais podem variar dependendo da composição do seu corpo, dieta e outros fatores. Além disso, eu não sou médico nem nutricionista, então, por favor, não tome isso como um conselho médico.
Calculando o TDEE
Agora que temos os nossos dados de peso e percentual de gordura analisados e agregados em um formato utilizável, podemos começar a calcular o nosso TDEE.
Para calcular o seu TDEE, siga estas etapas:
- Obtenha o número total de calorias consumidas durante o período de 30 dias.
- Calcule a diferença de peso entre o início e o fim do período de 30 dias.
- Converta a diferença de peso em calorias multiplicando-a pelo número de músculo/gordura ganho/perdido.
- Subtraia o resultado da etapa 3 do total de calorias consumidas no período de 30 dias.
- Divida o resultado da etapa 4 por 30 para obter a sua ingestão média diária de calorias, que deve ser o seu TDEE.
Aqui está o código para calcular o TDEE e mais usando o código:
function calculateStatistics(dataArray) {
  const totalDays = dataArray.length;
  const {
    totalFat,
    totalFiber,
    totalCarbs,
    finalWeight,
    totalProtein,
    totalCalories,
    initialWeight,
    initialFatPercentage,
    finalFatPercentage,
    initialDate,
    finalDate,
  } = accumulateData(dataArray);
  const {
    fatDifference,
    weightDifference,
    muscleDifference,
    fatDifferencePercentage,
  } = calculateWeightDifference(initialWeight, finalWeight, initialFatPercentage, finalFatPercentage);
  const { muscleCalories, fatCalories } = calculateMuscleAndFatCalories(muscleDifference, fatDifference);
  const tdee = calculateTDEE(totalCalories, muscleCalories, fatCalories, totalDays);
  return [
    `*From ${initialDate} to ${finalDate}*\n`,
    `Days Range: ${totalDays}`,
    `TDEE: ${tdee?.toFixed(2)} kcal`,
    `Average Calories: ${(totalCalories / totalDays)?.toFixed(2)} kcal`,
    `Average Protein: ${(totalProtein / totalDays)?.toFixed(2)} g`,
    `Average Carbs: ${(totalCarbs / totalDays)?.toFixed(2)} g`,
    `Average Fat: ${(totalFat / totalDays)?.toFixed(2)} g`,
    `Average Fiber: ${(totalFiber / totalDays)?.toFixed(2)} g`,
    `Weight Difference: ${weightDifference > 0 ? '+' : ''}${weightDifference?.toFixed(2)} kg (${initialWeight?.toFixed(2)} -> ${finalWeight?.toFixed(2)})`,
    `Fat Difference: ${fatDifference > 0 ? '+' : ''}${fatDifference?.toFixed(2)} kg`,
    `Non-Fat Difference: ${muscleDifference > 0 ? '+' : ''}${muscleDifference?.toFixed(2)} kg`,
    `Fat Percentage Difference: ${fatDifferencePercentage > 0 ? '+' : ''}${fatDifferencePercentage?.toFixed(2)}%  (${initialFatPercentage?.toFixed(2)} -> ${finalFatPercentage?.toFixed(2)})`,
  ].join('\n');
}Esta função retorna uma string com detalhes para um período de 30 dias, incluindo o número de dias, TDEE, ingestão média diária de calorias, proteínas, carboidratos, gordura e fibras, bem como as diferenças de peso, gordura, não gordura e percentual de gordura entre o início e o fim do período.
Quanto às funções ausentes accumulateData, calculateWeightDifference e calculateTDEE, aqui estão elas:
function accumulateData(dataArray) {
  const lastOccurrence = dataArray[dataArray.length - 1];
  const firstOccurrence = dataArray[0];
  const accumulator = {
    totalCalories: 0,
    totalProtein: 0,
    totalCarbs: 0,
    totalFat: 0,
    totalFiber: 0,
    initialWeight: firstOccurrence?.weight,
    finalWeight: lastOccurrence?.weight,
    initialFatPercentage: firstOccurrence?.fatPercentage,
    finalFatPercentage: lastOccurrence?.fatPercentage,
    initialDate: firstOccurrence?.date || '',
    finalDate: lastOccurrence?.date || '',
  };
  dataArray.forEach((data) => {
    accumulator.totalCalories += data.caloriesConsumed;
    accumulator.totalProtein += data.protein;
    accumulator.totalCarbs += data.carbs;
    accumulator.totalFat += data.fat;
    accumulator.totalFiber += data.fiber;
  });
  return accumulator;
}
function calculateWeightDifference(initialWeight, finalWeight, initialFatPercentage, finalFatPercentage) {
  const weightDifference = finalWeight - initialWeight;
  const initialFat = (initialFatPercentage * initialWeight) / 100;
  const finalFat = (finalFatPercentage * finalWeight) / 100;
  const fatDifference = finalFat - initialFat;
  const muscleDifference = weightDifference - fatDifference;
  const fatDifferencePercentage = finalFatPercentage - initialFatPercentage;
  return { weightDifference, fatDifference, muscleDifference, fatDifferencePercentage };
}
function calculateTDEE(totalCalories, muscleCalories, fatCalories, totalDays) {
  const caloriesDifference = fatCalories + muscleCalories;
  return (totalCalories - caloriesDifference) / totalDays;
}Como você pode ver, a função calculateStatistics chama a função accumulateData para obter o total de calorias, proteínas, carboidratos, gordura e fibras consumidas durante o período de 30 dias, bem como o peso inicial e final e o percentual de gordura.
Em seguida, ela chama a função calculateWeightDifference para calcular as diferenças de peso, gordura, não gordura e percentual de gordura entre o início e o fim do período.
Finalmente, ela chama a função calculateTDEE para calcular o TDEE.
Enviar os dados para o Telegram
Após calcular o seu TDEE, você pode querer compartilhar essa informação com outras pessoas, como um personal trainer ou um amigo. Uma maneira fácil de fazer isso é enviando os dados para um grupo de chat no Telegram. Isso pode ser feito usando a API do Bot do Telegram.
Aqui está um exemplo de trecho de código que envia o resultado do TDEE para um grupo de chat no Telegram:
const text = calculateStatistics(agragatedData);
await nodeFetch(`https://api.telegram.org/bot${process.env.TELEGRAM_BOT_ID}/sendMessage`, {
  method: 'POST',
  headers: {
  'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  text,
  chat_id: process.env.TELEGRAM_GROUP_ID,
  parse_mode: 'markdown',
  }),
});Neste código, estamos usando o pacote node-fetch para fazer uma requisição HTTP POST ao método sendMessage da API do Bot do Telegram. Passamos o resultado do TDEE como o campo de texto no corpo da requisição, junto com o chat_id do grupo do Telegram para o qual queremos enviar a mensagem. Também definimos o campo parse_mode como markdown para habilitar a formatação na mensagem.
Note que, para usar esse código, você precisará definir as variáveis de ambiente TELEGRAM_BOT_ID e TELEGRAM_GROUP_ID com os valores apropriados.
Bônus
Você pode copiar o texto que obteve deste script e enviá-lo para o ChatGPT para obter ainda mais insights 👀.
Olá. O que você acha desses dados do meu acompanhamento de saúde pessoal dos últimos 30 dias ou mais? Você pode me dar uma análise curta e concisa sobre o que estou fazendo bem e onde devo melhorar? Obrigado <- Meus Dados em Texto ->
Claro! Com base nos dados que você forneceu, aqui está uma análise breve:
O Que Você Está Fazendo Bem: Equilíbrio Calórico: A sua ingestão calórica média está muito próxima do seu Gasto Energético Diário Total (TDEE), o que sugere que você está mantendo seu peso efetivamente. Perda de Peso: Você perdeu 0,80 kg no último mês, o que é uma taxa de perda de peso saudável e sustentável, se esse for o seu objetivo. Ingestão de Proteína: A sua ingestão média de proteína parece estar em uma boa faixa, especialmente se você está praticando atividades físicas que requerem reparo e crescimento muscular.
Áreas para Melhoria: Aumento da Porcentagem de Gordura: O aumento na porcentagem de gordura e na massa gorda pode ser uma preocupação se você estiver buscando reduzir a gordura corporal. Isso pode estar relacionado ao tipo de alimentos que você está consumindo ou ao equilíbrio de macronutrientes. Ingestão de Fibras: Sua ingestão média de fibras está um pouco baixa. Aumentar a ingestão de fibras consumindo mais grãos integrais, frutas e vegetais pode auxiliar na digestão e pode ajudar no controle do peso.
Lembre-se, esses insights são baseados nos dados fornecidos e nas diretrizes gerais. As necessidades individuais podem variar amplamente, então é sempre uma boa ideia consultar um profissional de saúde ou nutricionista para obter orientação personalizada.
Conclusão
Pronto, agora você sempre saberá exatamente qual é o seu TDEE. Você pode usar essa informação para ajustar a sua dieta e rotina de exercícios para alcançar os seus objetivos de fitness, você pode até colocar este script num fluxo de trabalho do GitHub Actions para executá-lo automaticamente todos os dias e enviar os resultados para um grupo de chat no Telegram.
Se você quiser ver o código completo, você pode encontrá-lo no meu GitHub, que inclui um workflow do GitHub Action que executa o script diariamente e envia os resultados para um chat do Telegram, portanto, sinta-se à vontade para simplesmente clonar o repositório e usá-lo.
Espero que você tenha achado este artigo útil. Se tiver alguma dúvida ou comentário, fique à vontade para entrar em contato ou deixar o sua opinião na seção de comentários abaixo.
Tags:
Posts relacionados
Publicar um comentário
Comentários
Nenhum comentário.


