android - 如何使用 Tasker 读取 Google Fit 数据?

标签 android google-fit tasker

如何使用 Tasker 将 Google Fit 中的数据读取到变量中?

更具体地说,我想阅读例如我今天的当前步数由我的手机 + 健身追踪器计算并提供给 Google Fit。我的目标是让一个变量包含这个数字然后使用它。我读过 Google Fit History API,但不知道如何通过 Tasker 访问它。

最佳答案

经过一天的反复试验,我确实弄明白了。这是一个相当“复杂”的过程。

准备:

第 1 步 - 在 https://console.developers.google.com/project 上创建一个项目并获得客户端 ID 和 secret 。 (有很多更详细的教程)。该项目需要配置为一个应用程序——而不是一个 web 东西。您还需要将 urn:ietf:wg:oauth:2.0:oob 添加到重定向 URL。 (http://localhost 可能留在那里)

第 2 步 - 为 Tasker 安装 RETask 插件。

第 3 步 - 转到 https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/fitness.activity .read&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=YOUR_CLIENT_ID。你会在那里得到一个代码。复制该代码。

第 4 步 - 创建一个将使用 RETask 插件操作的任务。将其配置为:

Request Type: POST
Host: https://accounts.google.com/o/oauth2/token

选中启用自定义正文

将自定义正文设置为:code=%THE_COPIED_CODE&client_id=%YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code

切换到 Header 并按 Add more:

Name: Content-Type
Value: application/x-www-form-urlencoded

如果一切顺利,您将获得返回代码 200。 使用 splitter " 拆分返回的响应 (%rtres)。保存位于 %rtres4 中的 token 和您的位于 %rtres14 内的刷新 token 。

获取步数

第 1 步 - 在获得任何东西之前,您需要有一个有效的 token 。在准备过程中获得的 token 仅在有限的时间内有效。您可以使用本应保存的刷新 token 请求新 token 。要获得工作 token ,请使用不同的主体重做第 4 步:

client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&refresh_token=YOUR_REFRESH_TOKEN&grant_type=refresh_token

重复拆分,新的 token 将保存在%rtres4中。

第 2 步 - 现在您终于可以获得宝贵的数据。首先,定义开始和结束时间(保存在 %start%end 中)。请注意,这些必须以纳秒为单位。您可以使用 %TIMEMS*1000000。因此,添加具有以下配置的 RESTask 操作:

Request Type: GET
Host: https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:com.google.android.gms:estimated_steps/datasets/%start-%end

不要检查启用自定义正文

切换到 Header 并按 Add more(3 次):

Name: Content-Type
Value: application/json

Name: Authorization
Value: Bearer YOUR_TOKEN

Name: X-JavaScript-User-Agent
Value: Google APIs Explorer

如果一切顺利,您将获得返回代码 200。步数将在响应中返回。

请随意使用这些数据做任何您想做的事。要获得完整的步数,您可能需要汇总这些值。 (拆分响应并使用 for 循环迭代)。我确实选择将步数传递给 Zooper 小部件,以便在主屏幕上显示我自己的自定义 Google Fit 步数小部件。

关于android - 如何使用 Tasker 读取 Google Fit 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29298750/

相关文章:

android - 如何更改图库的属性

android - NetworkModule 内的 SharedPreferences 实例

android - onPause() 安卓

java - 为什么 Google fit API 不断返回空数据集?

javascript - 计算日期之间的特定工作日数

android - 在 Android 上打开 HTML 文件

android - 通过 adb shell/Tasker 关闭第二个 SIM - 使用 Activity/Intent

android - 如何在 HTML5 android 应用程序上呈现印地语字体

javascript - 我可以通过 Google Fit REST API 获取我步数的实时数据吗?

php - 通过 Google Fit REST API 提交体重信息/距离