如何使用Tasker阅读Google Fit数据?

时间:2015-03-27 10:40:35

标签: android google-fit tasker

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

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

1 个答案:

答案 0 :(得分:4)

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

<强>制备

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

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

第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步 - 创建一个将使用RESTask插件操作的任务。将其配置为:

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

检查Enable custom body

将自定义正文设置为: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。 使用%rtres splitter拆分返回的回复(")。保存位于%rtres4内的令牌和位于%rtres14内的刷新令牌。

获取步数

第1步 - 在获取任何内容之前,您需要拥有有效的令牌。准备期间获得的令牌仅在有限的时间内有效。您可以使用应保存的刷新令牌请求新令牌。要获得工作令牌,请使用不同的正文重做第4步

client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&refresh_token=YOUR_REFRESH_TOKEN&grant_type=refresh_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

检查Enable custom body

切换到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 Widget,以便在主屏幕上拥有我自己的自定义Google Fit步数小部件。