Я понял это после дня проб и ошибок. Это довольно «сложная» процедура.
Подготовка:
Шаг 1. Создайте проект на https://console.developers.google.com/project и получить идентификатор клиента, а также секрет. (Есть много более подробных руководств по этому поводу). Проект должен быть настроен как приложение, а не как веб-приложение. Вам также необходимо добавить urn:ietf:wg:oauth:2.0:oob
к URL-адресам перенаправления. (http://localhost
может остаться там)
Шаг 2. Установите подключаемый модуль RESTask для Tasker.
Шаг 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, чтобы иметь свой собственный виджет подсчета шагов Google Fit на рабочем столе.
person
Dominic
schedule
27.03.2015