Google Health API-এর মাধ্যমে পুষ্টি ও হাইড্রেট থাকার অভিজ্ঞতা ডেভেলপ করা

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

যেসব ডেটার ধরন কাজ করে

সারণী: Google Health API পুষ্টি সংক্রান্ত ডেটার ধরন
ডেটার ধরন উপলভ্য
অপারেশন
সুযোগ
খাবার
dataType: food
filter parameter: food
রেকর্ডের ধরন: খাবার
তালিকা, ডাউনলোড করুন .nutrition.readonly
.nutrition.writeonly
খাবার পরিমাপের ইউনিট
dataType: food-measurement-unit
filter parameter: food_measurement_unit
রেকর্ডের ধরন: খাবার

মানানসই ডিভাইস

তালিকা, ডাউনলোড করুন .nutrition.readonly
.nutrition.writeonly
হাইড্রেশন লগ
dataType: hydration-log
filter parameter: hydration_log
রেকর্ডের ধরন: সেশন
list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .nutrition.readonly
.nutrition.writeonly
পুষ্টির লগ
dataType: nutrition-log
filter parameter: nutrition_log
রেকর্ডের ধরন: সেশন

মানানসই ডিভাইস

list, get, reconcile, rollup, dailyRollup, create, update, batchDelete .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 ফিল্ডটি সেট করুন যাতে সেটি কোনও ফুড রিসোর্সকে রেফারেন্স করে। API অটোমেটিক পুষ্টি সংক্রান্ত ফিল্ড পূরণ করে।

অনুরোধ করুন

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,
      "foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
    }
  }
}

রেসপন্স

{
  "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-16T12:00:00Z",
        "startUtcOffset": "0s",
        "endTime": "2026-06-16T12:30:00Z",
        "endUtcOffset": "0s",
        "civilStartTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 12
          }
        },
        "civilEndTime": {
          "date": {
            "year": 2026,
            "month": 6,
            "day": 16
          },
          "time": {
            "hours": 12,
            "minutes": 30
          }
        }
      },
      "energy": {
        "kcal": 95
      },
      "energyFromFat": {
        "kcal": 3
      },
      "totalCarbohydrate": {
        "grams": 25
      },
      "totalFat": {
        "grams": 0.3
      },
      "nutrients": [
        {
          "quantity": {
            "grams": 4.4,
            "userProvidedUnit": "GRAM"
          },
          "nutrient": "DIETARY_FIBER"
        },
        {
          "quantity": {
            "grams": 19,
            "userProvidedUnit": "GRAM"
          },
          "nutrient": "SUGAR"
        },
        {
          "quantity": {
            "grams": 0.5,
            "userProvidedUnit": "GRAM"
          },
          "nutrient": "PROTEIN"
        }
      ],
      "mealType": "LUNCH",
      "serving": {
        "amount": 1,
        "foodMeasurementUnit": "users/me/dataTypes/food-measurement-unit/dataPoints/food-measurement-unit-id"
      },
      "food": "users/user-id/dataTypes/food/dataPoints/food-id",
      "foodDisplayName": "Apple"
    }
  }
}

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

এক বা একাধিক পুষ্টি সংক্রান্ত লগ এন্ট্রি মুছে ফেলতে, 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"
  ]
}

পুষ্টির লগ ফিল্ড

ফিল্ড ও বিবরণের সম্পূর্ণ তালিকা দেখতে, NutritionLog দেখুন।

এনার্জির পরিমাণ

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

{
  "kcal": 165
}

ওজনের পরিমাণ

ওজনের পরিমাপ দেখায়, যা গ্রামে পরিমাপ করা হয়। আরও জানতে, WeightQuantity দেখুন।

{
  "grams": 27.3
}

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

নির্দিষ্ট পুষ্টি এবং তার পরিমাপ করা পরিমাণ দেখায়। আরও জানতে, NutrientQuantity দেখুন।

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

পুষ্টির মান

কোন কোন পুষ্টির ধরন কাজ করে তার সম্পূর্ণ তালিকা দেখতে, Nutrient দেখুন।

দেখানো হচ্ছে

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

{
  "amount": 1.5
}

খাবারের ধরন সংক্রান্ত ভ্যালু

কোন কোন ধরনের খাবারের ক্ষেত্রে এই সুবিধা পাওয়া যায় তার সম্পূর্ণ তালিকা দেখতে, MealType দেখুন।

খাবার

খাবার হল শুধুমাত্র পড়া যায় এমন ডেটার ধরন যা খাবারের ডেটাবেসে কোনও খাবারের আইটেমকে দেখায়। উপলভ্য খাবার ব্রাউজ করতে এবং তাদের পুষ্টি সংক্রান্ত তথ্য পেতে list এবং get অপারেশন ব্যবহার করুন।

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

খাবারের তালিকা তৈরি করতে, 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"
          }
        }
      }
    ]
  }
}

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

ফিল্ড ও বিবরণের সম্পূর্ণ তালিকা দেখতে, HydrationLog দেখুন।

ভলিউমের পরিমাণ

ভলিউম পরিমাপ দেখায়, মিলিলিটারে পরিমাপ করা হয়। আরও জানতে, VolumeQuantity দেখুন।

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

ভলিউম ইউনিটের ভ্যালু

ভলিউমের যেসব ইউনিট কাজ করে তার সম্পূর্ণ তালিকা দেখতে, VolumeUnit দেখুন। সাধারণ মানের মধ্যে এগুলি পড়ে MILLILITER, LITER, CUP_US এবং FLUID_OUNCE_US।

নির্দেশিকা

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