You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web应用调用Google Fit Rest API获取用户最新身高遇数据源返回问题

我来帮你解决这个问题!你当前的代码只返回数据源详情,核心原因是调用了错误的API方法——fitness.users.dataSources.get()是用来获取数据源的元数据(比如数据源类型、所属应用),而不是实际的身高测量数据。下面是具体的修正方案:

问题根源

fitness.users.dataSources.get()的作用是查询数据源本身的信息,而非该数据源下存储的用户测量数据。要拿到身高数值,你需要调用专门读取数据集的API方法。

解决步骤与修正代码

1. 使用正确的API方法

改用fitness.users.dataSources.datasets.get(),这个方法用于读取指定数据源下的具体测量数据。

2. 填写正确的身高数据源ID

Google Fit提供了预定义的合并身高数据源,会聚合所有来源的身高数据(手动输入、设备同步等),其ID为:
derived:com.google.height:com.google.android.gms:merge_height

3. 生成有效的数据集ID

数据集ID的格式为[起始时间戳]-[结束时间戳](毫秒级)。如果想获取所有历史数据并取最新值,可以设起始时间为0,结束时间为当前时间Date.now()。

4. 提取最新身高数据

返回结果中的point数组包含所有身高测量点,每个点的value[0].fpVal就是身高的浮点值(单位为米),按时间戳倒序排序后取第一条即可。

完整修正代码

const scopes = [
  'https://www.googleapis.com/auth/plus.me',
  'https://www.googleapis.com/auth/fitness.body.read'
];
const fitness = google.fitness('v1');

async function getLatestHeight() {
  try {
    // 合并身高数据源ID
    const heightDataSourceId = 'derived:com.google.height:com.google.android.gms:merge_height';
    // 数据集ID:从最早时间到当前时间
    const datasetId = `0-${Date.now()}`;

    const response = await fitness.users.dataSources.datasets.get({
      userId: 'me',
      dataSourceId: heightDataSourceId,
      datasetId: datasetId,
    });

    const heightPoints = response.data.point;
    if (!heightPoints || heightPoints.length === 0) {
      console.log('未找到任何身高数据');
      return;
    }

    // 按时间戳倒序排序,取最新的一条
    heightPoints.sort((a, b) => parseInt(b.endTimeNanos) - parseInt(a.endTimeNanos));
    const latestHeightMeters = heightPoints[0].value[0].fpVal;
    const latestHeightCm = latestHeightMeters * 100; // 转换为厘米(可选)

    console.log(`最新身高:${latestHeightMeters} 米 / ${latestHeightCm.toFixed(1)} 厘米`);
  } catch (err) {
    console.error('获取身高数据失败:', err.message);
  }
}

// 调用函数
getLatestHeight();

额外提示

  • 确保你的OAuth 2.0授权已经正确包含fitness.body.read权限,这是读取身体数据的必要条件
  • 如果用户从未添加过身高数据,point数组会为空,记得做空值判断
  • 身高数据默认单位是米,可根据需求转换为厘米或其他单位

内容的提问来源于stack exchange,提问作者Welsh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:19:03