如何使用 Tasker 读取 Google 拟合数据?
How to read Google Fit data with Tasker?
如何使用 Tasker 从 Google 中读取数据以适应变量?
更具体地说,我想阅读例如我今天的当前步数由我的 phone + 健身追踪器计算并提供给 Google Fit。我的目标是让一个变量包含这个数字然后使用它。我读过 Google 适合历史 API 但我不知道如何通过 Tasker 访问它。
经过一天的反复试验,我确实弄明白了。这是一个相当 "complicated" 的程序。
准备:
步骤 1 - 在 https://console.developers.google.com/project 上创建一个项目并获取客户端 ID 和密钥。 (有很多更详细的教程)。该项目需要配置为一个应用程序——而不是一个 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
勾选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
如果一切顺利,您将收到 return 代码 200。
将 returned 响应 (%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
。因此,添加一个具有以下配置的 RETask 操作:
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
如果一切顺利,您将收到 return 代码 200。步数将在响应中 returned。
随意使用这些数据做任何你想做的事。要获得完整的步数,您可能需要汇总这些值。 (拆分响应并使用 for 循环迭代)。我确实选择将步数传递给 Zooper Widget,以便在主屏幕上拥有我自己的自定义 Google Fit 步数小部件。
如何使用 Tasker 从 Google 中读取数据以适应变量?
更具体地说,我想阅读例如我今天的当前步数由我的 phone + 健身追踪器计算并提供给 Google Fit。我的目标是让一个变量包含这个数字然后使用它。我读过 Google 适合历史 API 但我不知道如何通过 Tasker 访问它。
经过一天的反复试验,我确实弄明白了。这是一个相当 "complicated" 的程序。
准备:
步骤 1 - 在 https://console.developers.google.com/project 上创建一个项目并获取客户端 ID 和密钥。 (有很多更详细的教程)。该项目需要配置为一个应用程序——而不是一个 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
勾选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
如果一切顺利,您将收到 return 代码 200。
将 returned 响应 (%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
。因此,添加一个具有以下配置的 RETask 操作:
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
如果一切顺利,您将收到 return 代码 200。步数将在响应中 returned。
随意使用这些数据做任何你想做的事。要获得完整的步数,您可能需要汇总这些值。 (拆分响应并使用 for 循环迭代)。我确实选择将步数传递给 Zooper Widget,以便在主屏幕上拥有我自己的自定义 Google Fit 步数小部件。