Đọc các món ăn được ăn

Android

Ứng dụng của bạn có thể xem danh sách các món ăn được ăn trong một khung thời gian nhất định bằng cách tạo một yêu cầu đọc dữ liệu và truy vấn DataType.TYPE_NUTRITION, như minh hoạ trong ví dụ sau:

val readRequest = DataReadRequest.Builder()
    .read(DataType.TYPE_NUTRITION)
    .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
    .build()

Để biết thêm thông tin về cách đọc dữ liệu, hãy xem phần Làm việc với nhật ký thể dục.

Kiến trúc chuyển trạng thái đại diện (REST)

Việc truy xuất danh sách các mục thực phẩm được ăn thông qua API REST là quy trình gồm 3 giai đoạn:

  1. Truy xuất danh sách các nguồn dữ liệu có sẵn cho loại dữ liệu com.google.nutrition. Ngoài ra, nếu đã biết thông tin về nguồn dữ liệu, bạn có thể sử dụng trực tiếp các thông tin này trong bước tiếp theo.
  2. Lần lượt lấy danh sách thức ăn đã ăn từ từng nguồn dữ liệu.
  3. (Nếu có nhiều nguồn dữ liệu) kết hợp danh sách các mặt hàng thực phẩm trong ứng dụng.

Truy xuất danh sách nguồn dữ liệu thực phẩm

Vì chỉ yêu cầu datasource.dataStreamId từ mỗi nguồn dữ liệu, bạn có thể sử dụng mặt nạ trường (như minh hoạ ở đây) để chỉ phản hồi thuộc tính này.

Phương thức HTTP

GET

URL yêu cầu

https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)

Đáp

Nếu thành công, phản hồi sẽ là mã trạng thái 200 OK. Nội dung phản hồi chứa danh sách JSON, mỗi mục trong danh sách tương ứng với một nguồn dữ liệu.

Ví dụ:

{
 "dataSource": [
  {
   "dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource1:"
  },
  {
   "dataStreamId": "raw:com.google.nutrition:com.example.nutritionSource2:"
  }
 ]
}

Lệnh CURL

$ curl \
  'https://www.googleapis.com/fitness/v1/users/me/dataSources?dataTypeName=com.google.nutrition&fields=dataSource(dataStreamId)' \
      --header 'Authorization: Bearer ya29.yourtokenvalue' \
      --header 'Accept: application/json' \
      --compressed

Lấy danh sách thức ăn đã ăn từ nguồn dữ liệu

Lần lượt, hãy sử dụng dataSource.dataStreamId từ mỗi nguồn ở bước 1 để truy xuất(các) danh sách thực phẩm đã ăn.

datasetId là thời điểm bắt đầu và kết thúc của khoảng thời gian cần thiết, tính bằng nano giây như được xác định trong tài nguyên tập dữ liệu.

Ví dụ: 1546300800000000000-1546387200000000000 đại diện cho datasetId từ 00:00:00:00 ngày 01 tháng 1 năm 2019 theo giờ UTC đến 00:00:00 ngày 02 tháng 1 năm 2019.

Phương thức HTTP

GET

URL yêu cầu

https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/1546300800000000000-1546387200000000000?fields=point%2Fvalue%2FstringVal

Đáp

{
 "point": [
  {
   "value": [
    {},
    {},
    {
     "stringVal": "apple"
    }
   ]
  },
  {
   "value": [
    {},
    {},
    {
     "stringVal": "banana"
    }
   ]
  },
  {
   "value": [
    {},
    {},
    {
     "stringVal": "carrot"
    }
   ]
  }
 ]
}

Lệnh CURL

$ curl \
  'https://www.googleapis.com/fitness/v1/users/me/dataSources/dataSource.dataStreamId/datasets/157059699023000000-1575159699023999000?fields=point%2Fvalue%2FstringVal' \
      --header 'Authorization: Bearer ya29.yourtokenvalue' \
      --header 'Accept: application/json' \
      --compressed