গুগল হেলথ এপিআই ব্যবহার করে পুষ্টি ও পানীয় সংক্রান্ত অভিজ্ঞতা তৈরি করুন

গুগল হেলথ এপিআই একজন ব্যবহারকারীর পুষ্টি ও পানীয় গ্রহণের মাত্রা ট্র্যাক করার জন্য বিভিন্ন ডেটা টাইপ প্রদান করে। এই টাইপগুলোর মাধ্যমে আপনি খাবারের বিবরণ লগ করতে, ফুড ডেটাবেস থেকে খাবার উল্লেখ করতে, পুষ্টি উপাদানের পরিমাণ ট্র্যাক করতে এবং তরল গ্রহণের পরিমাণ লগ করতে পারেন।

সমর্থিত ডেটা প্রকার

সারণি: গুগল হেলথ এপিআই পুষ্টি ডেটার প্রকারভেদ
ডেটা টাইপ উপলব্ধ
অপারেশন
পরিধি
খাবার
ডেটাটাইপ: food
ফিল্টার প্যারামিটার: food
রেকর্ডের ধরণ: খাদ্য
তালিকা, পেতে .nutrition.readonly
.nutrition.writeonly
খাদ্য পরিমাপের একক
ডেটাটাইপ: food-measurement-unit
ফিল্টার প্যারামিটার: food_measurement_unit
রেকর্ডের ধরণ: খাদ্য

সামঞ্জস্যপূর্ণ ডিভাইস

তালিকা, পেতে .nutrition.readonly
.nutrition.writeonly
হাইড্রেশন লগ
ডেটার ধরণ: hydration-log
ফিল্টার প্যারামিটার: hydration_log
রেকর্ডের ধরণ: সেশন
তালিকা, প্রাপ্তি, সমন্বয়, একত্রীকরণ, দৈনিক একত্রীকরণ, তৈরি, হালনাগাদ, ব্যাচ ডিলিট .nutrition.readonly
.nutrition.writeonly
পুষ্টি লগ
ডেটার ধরণ: nutrition-log
ফিল্টার প্যারামিটার: nutrition_log
রেকর্ডের ধরণ: নমুনা

সামঞ্জস্যপূর্ণ ডিভাইস

তালিকা, প্রাপ্তি, সমন্বয়, একত্রীকরণ, দৈনিক একত্রীকরণ, তৈরি, হালনাগাদ, ব্যাচ ডিলিট .nutrition.readonly
.nutrition.writeonly

পুষ্টি লগ

পুষ্টি লগ হলো ব্যবহারকারীর দ্বারা লিপিবদ্ধ করা খাবারের বিবরণ। খাবারের ধরনের ওপর নির্ভর করে পুষ্টি লগ তৈরি করার দুটি উপায় রয়েছে:

  1. শনাক্তকৃত খাদ্য : একটি বিদ্যমান খাদ্য উৎসকে নির্দেশ করতে food ক্ষেত্রটি সেট করুন। nutrients , energy , energyFromFat , totalCarbohydrate , totalFat এবং foodDisplayName ক্ষেত্রগুলি নির্দেশিত খাদ্য থেকে স্বয়ংক্রিয়ভাবে পূরণ হয়ে যায়। এটিই পছন্দনীয় পদ্ধতি।

  2. বেনামী খাবার : foodDisplayName ফিল্ডটি ম্যানুয়ালি সেট করুন এবং nutrients , energy , energyFromFat , totalCarbohydrate , ও totalFat এর জন্য মান প্রদান করুন। বেনামী খাবার থেকে তৈরি পুষ্টি লগ একবার তৈরি হয়ে গেলে আর সম্পাদনা করা যায় না।

বেনামী খাবার দিয়ে পুষ্টির লগ তৈরি করুন

পুষ্টি সংক্রান্ত লগ এন্ট্রি তৈরি করতে, nutrition-log dataPoints এন্ডপয়েন্টে একটি POST রিকোয়েস্ট পাঠান।

অনুরোধ

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "nutritionLog": {
    "interval": {
      "startTime": "2026-06-16T18:00:00Z",
      "endTime": "2026-06-16T18:30:00Z"
    },
    "foodDisplayName": "Grilled Chicken Breast",
    "mealType": "DINNER",
    "energy": {
      "kcal": 165
    },
    "totalCarbohydrate": {
      "grams": 0
    },
    "totalFat": {
      "grams": 3.6
    },
    "nutrients": [
      {
        "nutrient": "PROTEIN",
        "quantity": {
          "grams": 31
        }
      },
      {
        "nutrient": "SODIUM",
        "quantity": {
          "grams": 0.074
        }
      }
    ],
    "serving": {
      "amount": 1.0
    }
  }
}

প্রতিক্রিয়া

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/nutrition-log/dataPoints/data-point-id",
    "dataSource": {
      "recordingMethod": "UNKNOWN",
      "application": {
        "googleWebClientId": "google-web-client-id"
      },
      "platform": "GOOGLE_WEB_API"
    },
    "nutritionLog": {
      "interval": {
        "startTime": "2026-06-16T18:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T18:30:00Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 18
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 18,
            "minutes": 30
          }
        }
      },
      "energy": {
        "kcal": 165
      },
      "totalCarbohydrate": {
        "grams": 0
      },
      "totalFat": {
        "grams": 3.6
      },
      "nutrients": [
        {
          "quantity": {
            "grams": 31
          },
          "nutrient": "PROTEIN"
        },
        {
          "quantity": {
            "grams": 0.074
          },
          "nutrient": "SODIUM"
        }
      ],
      "mealType": "DINNER",
      "serving": {
        "amount": 1
      },
      "foodDisplayName": "Grilled Chicken Breast"
    }
  }
}

চিহ্নিত খাবার দিয়ে পুষ্টির তালিকা তৈরি করুন

খাদ্য ডাটাবেস থেকে কোনো খাদ্যদ্রব্য লগ করতে, food ফিল্ডটিকে একটি ফুড রিসোর্স রেফারেন্স করার জন্য সেট করুন। এপিআই স্বয়ংক্রিয়ভাবে পুষ্টি সংক্রান্ত ফিল্ডগুলি পূরণ করে দেয়।

অনুরোধ:

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "nutritionLog": {
    "interval": {
      "startTime": "2026-06-16T12:00:00Z",
      "endTime": "2026-06-16T12:30:00Z"
    },
    "food": "users/me/dataTypes/food/dataPoints/food-id",
    "mealType": "LUNCH",
    "serving": {
      "amount": 1.0
    }
  }
}

পুষ্টি লগগুলি মুছে ফেলুন

এক বা একাধিক পুষ্টি লগ এন্ট্রি মুছে ফেলার জন্য, যে এন্ট্রিগুলো মুছতে চান সেগুলোর রিসোর্স নামসহ batchDelete মেথডে একটি POST রিকোয়েস্ট পাঠান।

অনুরোধ:

POST https://health.googleapis.com/v4/users/me/dataTypes/nutrition-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json

{
  "names": [
    "users/me/dataTypes/nutrition-log/dataPoints/data-point-id"
  ]
}

নিউট্রিশনলগ ক্ষেত্রগুলি

ফিল্ড ও সেগুলোর বিবরণের সম্পূর্ণ তালিকার জন্য রেফারেন্স ডকুমেন্টেশন দেখুন।

শক্তির পরিমাণ

এটি শক্তির একটি পরিমাপ, যা কিলোক্যালরি ( kcal ) এককে পরিমাপ করা হয়। বিস্তারিত জানতে, EnergyQuantity দেখুন।

{
  "kcal": 165
}

ওজন পরিমাণ

এটি ওজনের একটি পরিমাপ, যা গ্রামে পরিমাপ করা হয়। বিস্তারিত জানতে, ওজন-পরিমাণ দেখুন।

{
  "grams": 27.3
}

পুষ্টির পরিমাণ

একটি নির্দিষ্ট পুষ্টি উপাদান এবং তার পরিমাপকৃত পরিমাণকে বোঝায়। বিস্তারিত জানতে, পুষ্টি উপাদানের পরিমাণ (NutrientQuantity ) দেখুন।

{
  "nutrient": "PROTEIN",
  "quantity": {
    "grams": 31
  }
}

পুষ্টির মান

সমর্থিত পুষ্টি উপাদানের সম্পূর্ণ তালিকার জন্য, পুষ্টি উপাদান দেখুন।

পরিবেশন করা

পুষ্টি লগ এন্ট্রির জন্য পরিবেশন সংক্রান্ত তথ্য উপস্থাপন করে। বিস্তারিত জানতে, পরিবেশন (Serving) দেখুন।

{
  "amount": 1.5
}

খাবারের ধরণের মান

সমর্থিত খাবারের প্রকারের সম্পূর্ণ তালিকার জন্য, খাবারের প্রকার (MealType ) দেখুন।

খাবার

Food হলো একটি রিড-অনলি ডেটা টাইপ যা ফুড ডাটাবেসের একটি খাদ্যদ্রব্যকে উপস্থাপন করে। উপলব্ধ খাবারগুলো ব্রাউজ করতে এবং সেগুলোর পুষ্টিগত তথ্য পেতে listget অপারেশন ব্যবহার করুন।

খাবারের তালিকা

খাবারের তালিকা দেখতে, food dataPoints এন্ডপয়েন্টে একটি GET অনুরোধ পাঠান:

GET https://health.googleapis.com/v4/users/me/dataTypes/food/dataPoints
Authorization: Bearer access-token
Accept: application/json

খাদ্য পরিমাপের একক

খাদ্য পরিমাপ একক হলো একটি পঠনযোগ্য ডেটা টাইপ যা খাদ্য পরিবেশনে ব্যবহৃত পরিমাপের একককে বোঝায় (উদাহরণস্বরূপ, 'কাপ', 'টেবিল চামচ', বা 'পিস')।

উপলব্ধ পরিমাপের এককগুলির তালিকা

উপলব্ধ পরিমাপের এককগুলির তালিকা করতে:

GET https://health.googleapis.com/v4/users/me/dataTypes/food-measurement-unit/dataPoints
Authorization: Bearer access-token
Accept: application/json

হাইড্রেশন লগ

হাইড্রেশন লগ হলো ব্যবহারকারীর লিপিবদ্ধ করা তরল গ্রহণের পরিমাণ। খাদ্য তথ্যের মতো নয়, যা একটি খাদ্য ডেটাবেসের উপর ভিত্তি করে পুষ্টি বা শক্তি গ্রহণের পরিমাণ পরিমাপ করে, হাইড্রেশন এন্ট্রিগুলো একটি নির্দিষ্ট সময় ব্যবধানে গ্রহণ করা তরলের সুনির্দিষ্ট পরিমাণ ট্র্যাক করে।

একটি হাইড্রেশন লগ তৈরি করুন

হাইড্রেশন লগ এন্ট্রি তৈরি করতে, hydration-log dataPoints এন্ডপয়েন্টে একটি POST রিকোয়েস্ট পাঠান। API ফরম্যাটে সমস্ত আয়তনের পরিমাণ মিলিলিটারে রূপান্তরিত হয়।

অনুরোধ

POST https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints
Authorization: Bearer access-token
Content-Type: application/json

{
  "hydrationLog": {
    "interval": {
      "startTime": "2026-06-16T14:00:00Z",
      "endTime": "2026-06-16T14:00:01Z"
    },
    "amountConsumed": {
      "milliliters": 500,
      "userProvidedUnit": "FLUID_OUNCE_US"
    }
  }
}

প্রতিক্রিয়া

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
    "dataSource": {
      "recordingMethod": "UNKNOWN",
      "application": {
        "googleWebClientId": "google-web-client-id"
      },
      "platform": "GOOGLE_WEB_API"
    },
    "hydrationLog": {
      "interval": {
        "startTime": "2026-06-16T14:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T14:00:01Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 14
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 14,
            "seconds": 1
          }
        }
      },
      "amountConsumed": {
        "milliliters": 500,
        "userProvidedUnit": "FLUID_OUNCE_US"
      }
    }
  }
}

হাইড্রেশন লগ আপডেট করুন

হাইড্রেশন লগ এন্ট্রি আপডেট করতে, ডেটা পয়েন্টটির আইডি সহ hydration-log dataPoints এন্ডপয়েন্টে একটি PATCH রিকোয়েস্ট পাঠান।

অনুরোধ

PATCH https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints/data-point-id
Authorization: Bearer access-token
Content-Type: application/json

{
  "hydrationLog": {
    "interval": {
      "startTime": "2026-06-16T10:00:00Z",
      "endTime": "2026-06-16T10:00:01Z"
    },
    "amountConsumed": {
      "milliliters": 500
    }
  }
}

প্রতিক্রিয়া

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.DataPoint",
    "name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
    "dataSource": {
      "recordingMethod": "UNKNOWN",
      "application": {
        "googleWebClientId": "google-web-client-id"
      },
      "platform": "GOOGLE_WEB_API"
    },
    "hydrationLog": {
      "interval": {
        "startTime": "2026-06-16T10:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T10:00:01Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 10
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 10,
            "seconds": 1
          }
        }
      },
      "amountConsumed": {
        "milliliters": 500
      }
    }
  }
}

হাইড্রেশন লগগুলি মুছে ফেলুন

এক বা একাধিক হাইড্রেশন লগ এন্ট্রি মুছে ফেলার জন্য, batchDelete মেথডে একটি POST রিকোয়েস্ট পাঠান।

অনুরোধ

POST https://health.googleapis.com/v4/users/me/dataTypes/hydration-log/dataPoints:batchDelete
Authorization: Bearer access-token
Content-Type: application/json

{
  "names": [
    "users/me/dataTypes/hydration-log/dataPoints/data-point-id"
  ]
}

প্রতিক্রিয়া

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.devicesandservices.health.v4.BatchDeleteDataPointsResponse",
    "dataPoints": [
      {
        "name": "users/user-id/dataTypes/hydration-log/dataPoints/data-point-id",
        "dataSource": {
          "recordingMethod": "UNKNOWN",
          "application": {
            "googleWebClientId": "google-web-client-id"
          },
          "platform": "GOOGLE_WEB_API"
        },
        "hydrationLog": {
          "interval": {
            "startTime": "2026-06-16T14:00:00Z",
            "startUtcOffset": "0s",
            "endTime": "2026-06-16T14:00:01Z",
            "endUtcOffset": "0s",
            "civilStartTime": {
              "date": {
                "year": 2026,
                "month": 6,
                "day": 16
              },
              "time": {
                "hours": 14
              }
            },
            "civilEndTime": {
              "date": {
                "year": 2026,
                "month": 6,
                "day": 16
              },
              "time": {
                "hours": 14,
                "seconds": 1
              }
            }
          },
          "amountConsumed": {
            "milliliters": 500,
            "userProvidedUnit": "FLUID_OUNCE_US"
          }
        }
      }
    ]
  }
}

হাইড্রেশনলগ ক্ষেত্র

ফিল্ড ও সেগুলোর বিবরণের সম্পূর্ণ তালিকার জন্য রেফারেন্স ডকুমেন্টেশন দেখুন।

পরিমাণ

এটি আয়তনের একটি পরিমাপ, যা মিলিলিটারে পরিমাপ করা হয়। বিস্তারিত জানতে, VolumeQuantity দেখুন।

{
  "milliliters": 250,
  "userProvidedUnit": "MILLILITER"
}

আয়তন একক মান

সমর্থিত আয়তন এককের সম্পূর্ণ তালিকার জন্য, VolumeUnit দেখুন। প্রচলিত মানগুলোর মধ্যে রয়েছে MILLILITER , LITER , CUP_US এবং FLUID_OUNCE_US

নির্দেশিকা

  • সম্ভব হলে চিহ্নিত খাবার ব্যবহার করুন। এপিআই স্বয়ংক্রিয়ভাবে পুষ্টি সংক্রান্ত ক্ষেত্রগুলি পূরণ করে, যা ত্রুটি কমায় এবং খাদ্য ডেটাবেসের সাথে সামঞ্জস্য নিশ্চিত করে।
  • বেনামী খাবার থেকে তৈরি করা পুষ্টির লগ একবার তৈরি হয়ে গেলে আর আপডেট করা যায় না। যদি কোনো বেনামী খাবারের লগ সংশোধন করার প্রয়োজন হয়, তবে সেটি মুছে ফেলুন এবং একটি নতুন লগ তৈরি করুন।
  • বেনামী খাদ্য পুষ্টি লগের বিপরীতে, হাইড্রেশন লগের এন্ট্রিগুলি সম্পূর্ণরূপে পরিবর্তনযোগ্য এবং তৈরির পরেও একটি PATCH অনুরোধ ব্যবহার করে আপডেট করা যায়।
  • nutrients তালিকায় থাকা সমস্ত পুষ্টি উপাদানের পরিমাণ পরিমাপের একক হিসেবে গ্রাম ব্যবহার করে।
  • energy এবং energyFromFat ক্ষেত্রগুলিতে পরিমাপের একক হিসাবে কিলোক্যালরি ( kcal ) ব্যবহার করা হয়।
  • এপিআইটি সমস্ত হাইড্রেশন পরিমাণ মিলিলিটারে রূপান্তর করে সংরক্ষণ করে। VolumeQuantity এর ঐচ্ছিক userProvidedUnit ফিল্ডটি শুধুমাত্র ক্লায়েন্ট-সাইডে ব্যবহারকারীর কাছে প্রদর্শনের জন্য ব্যবহৃত হয়।
  • স্বতন্ত্র hydration-log ডেটা পয়েন্টে সরাসরি HTTP DELETE অনুরোধ করলে 404 Not Found ফেরত আসে। এই রিসোর্স এন্ট্রিগুলি মুছে ফেলার জন্য batchDelete পদ্ধতিটি ব্যবহার করুন।
  • হাইড্রেশন লগ একটি সংক্ষিপ্ত সময়কাল ব্যবহার করে, যেখানে startTime এবং endTime সেই সময়কালকে নির্দেশ করে, যে সময়ে তরল গ্রহণ করা হয়েছিল।