Прежде чем запрашивать доступ к данным о пригодности пользователя из приложения Google fit, вам необходимо получить свой sha1-ключ вашего debug. keystore
авторизованного на странице API Google fit и сгенерировать экран 0auth для запроса доступа. Чтобы получить доступ к api и ключ Shaq, посетите эту страницу Google fit и следуйте инструкциям, как показано. После того, как вы авторизовали свой ключ sha1 и имя пакета для получения доступа, теперь вы можете удалить папку ur android из своего проекта, повторно добавить ее и перестроить apk из студии Android, и после развертывания на своем устройстве вы будете будет запрошен правильный доступ к экрану Auth для предоставления доступа, и вы сможете увидеть данные для него.
requestAuthorization()
метод должен быть вызван перед использованием методов запроса и хранения, даже если авторизация уже была предоставлена в какой-то момент в прошлом. если мы не назовем их раньше, это может привести к тому, что приложение cra sh и Google fit выдаст ошибку cannot connect to google fit
.
В вашем коде внутри оператора if вам нужно вызвать requestAuthorization()
перед health.queryAggregated or health.query
: -
if (health.isAuthorized(["steps"])) {
console.log("Already Authorised");
health.requestAuthorization([
"distance",
"nutrition",
{
read: ["steps", "height", "weight"],
write: ["height", "weight"],
},
])
.then((res) => console.log("response " + res))
.catch((e) => console.log("error " + e));
health.queryAggregated({
startDate: new Date(new Date().getTime() - 3 * 24 * 60 * 60 * 1000),
endDate: new Date(), // now
dataType: 'steps',
bucket: 'day'
})
.then(res => console.log(res))
.catch(e => console.log(e));
} else {
health
.requestAuthorization([
"distance",
"nutrition",
{
read: ["steps"],
write: ["height", "weight"],
},
])
.then((res) => console.log(res))
.catch((e) => console.log(e));
}
})
.catch((e) => console.log(e));
};