SuperAPI AI 工具集

terra-sdk

编程与开发

查看项目

更新于 10-15 13:50

技能介绍

用途

Terra SDK 提供跨平台的 SDK 参考,用于在应用中集成 Terra API。适用于实现 Terra 接入、选择合适 SDK、调用认证与数据接口等场景,覆盖后端与移动端。

支持的平台与包

  • Python(后端):terra-python,用于服务端 API 调用
  • JavaScript(后端/Node):terra-api,支持 Node.js、Deno、Bun
  • iOS(移动):TerraiOS,用于 Apple Health 集成
  • Android(移动):terra-android,用于 Samsung Health、Health Connect
  • React Native(移动):terra-react,跨平台移动
  • Flutter(移动):terra_flutter,跨平台移动

主要能力

认证

  • 生成 Widget 会话(generatewidgetsession)
  • 生成认证令牌(generateauthtoken),无参数,为账户生成
  • 用户认证(authenticateuser)与取消认证(deauthenticateuser)

用户管理

  • 获取单个用户信息(getinfoforuserid)
  • 列出所有已连接用户(getalluserids)
  • 批量获取用户信息(getinfoformultipleuserids)
  • 修改用户(modifyuser)

数据读取

通过 .fetch() 方法读取,数据类型包括:activity、sleep、daily、body、nutrition、menstruation、athlete。参数含 user_id、start_date、end_date、to_webhook。

集成列表

  • 基础列表(integrations.fetch)
  • 详细信息(integrations.detailedfetch)

数据写入(仅限部分提供方)

  • activity.write、nutrition.write、body.write

使用方式

Python

安装:pip install terra-python 初始化示例(同步):

from terra import Terra
client = Terra(dev_id="...", api_key="...")

异步:AsyncTerra。配置项含 timeout(请求超时秒数)、max_retries(自动重试,默认 2)。错误处理使用 terra.core.api_error.ApiError。

JavaScript/Node

安装:npm install terra-api 或 yarn add terra-api 使用 TerraClient,支持 TypeScript 类型与 TerraError,可通过 AbortController 取消请求。

iOS(Swift)

安装:Swift Package Manager 地址 https://github.com/tryterra/TerraiOS,或 CocoaPods pod 'TerraiOS'。使用 Terra.initTerra 初始化,Terra.initConnection 连接 Apple Health,schedulerOn: true 开启后台同步。支持读取与写入数据,可提交计划训练(postPlannedWorkout)。后台投递通过 Terra.setUpBackgroundDelivery()。

Android(Kotlin)

依赖:implementation 'co.tryterra:terra-android:VERSION',最低 SDK 28(Android 9.0+)。使用 Terra.initTerra、Terra.initConnection 连接 Samsung Health 或 Health Connect。需在 AndroidManifest.xml 声明 ACTIVITY_RECOGNITION、BODY_SENSORS 权限。

React Native

安装:npm install terra-react 或 yarn add terra-react;iOS 需 cd ios && pod install。使用 Terra.initTerra 初始化,Terra.initConnection 连接(按平台自动检测 Apple Health 或 Health Connect)。支持读取与写入(postActivity、postNutrition、postBody)。

Flutter

依赖:terra_flutter: ^VERSION。使用 Terra 类初始化与连接,支持读取与写入(postActivity、postNutrition)。

后端令牌生成(移动端必需)

移动 SDK 需要后端生成令牌,示例为 Flask 路由调用 terra.authentication.generateauthtoken(reference_id=...) 返回 token。令牌有效期 180 秒(3 分钟),一次性使用。

错误处理

Python 使用 ApiError 捕获 status_code、message、body;JavaScript 使用 TerraError 同理。

SDK 对比(文档提供)

  • 异步支持:全部支持
  • 自动重试:仅 Python、JavaScript 支持
  • 类型安全:除 React Native 外均标注支持
  • 后台同步:仅移动端(iOS、Android、React Native、Flutter)支持
  • 写入数据:全部支持

适用场景

  • 后端 API 调用:Python 或 JavaScript
  • iOS 应用集成 Apple Health:iOS SDK(Swift)
  • Android 应用:Android SDK(Kotlin)
  • 跨平台移动:React Native 或 Flutter
  • 无服务器(Lambda 等):JavaScript
  • 数据处理:Python(配合异步)

限制

  • 数据写入仅限部分提供方。
  • 移动端令牌有效期 180 秒,一次性使用。
  • Android 最低 SDK 28。
  • 文档展示了示例 dev_id 与 api_key 值,实际使用需替换为真实凭据。
  • 文中未提供各 SDK 的收费、价格与授权方式,暂未提供相关信息。