google-fit - 用于计步的 Google Fit APi 授予第一次用户拒绝的权限
问题描述
我开发了一个应用程序,它可以从 google fit 同步用户步数。我观察到,一旦在移动设备中安装了 google fit 应用程序就会同步的用户和尚未安装该应用程序的用户会收到以下错误
{ "error": { "code": 403, "message": "datasource not found or not readable: derived:com.google.step_count.delta:com.google.android.gms:estimated_steps", "errors": [ {“消息”:“数据源未找到或不可读:派生:com.google.step_count.delta:com.google.android.gms:estimated_steps”,“域”:“全局”,“原因”:“禁止”} ], "状态": "PERMISSION_DENIED" } }
当他们重新安装应用程序时,它工作正常
如果他们在第二天同步,它将起作用
这是代码:
const timeGap = {
endTimeMillis: new Date().getTime() + 1 * 60 * 60 * 1000,
startTimeMillis: new Date('2021-01-01 00:00').getTime(),
};
return gapi.client.fitness.users.dataset
.aggregate({
userId: 'me',
resource: {
aggregateBy: [
{
dataTypeName: 'com.google.step_count.delta',
dataSourceId:
'derived:com.google.step_count.delta:com.google.android.gms:estimated_steps',
},
],
endTimeMillis: timeGap.endTimeMillis,
startTimeMillis: timeGap.startTimeMillis,
bucketByTime: {
durationMillis: 86400000,
},
},
})
.then(
(response) => {
console.log('[[[[[', response);
const stepVals = [];
console.log(response);
observer.next(response.result);
observer.complete();
},
(err: any) => {
observer.error(err);
observer.next(err);
// console.error("ERRRR", err);
observer.complete();
}
);
解决方案
找不到数据源...
在用户将数据同步到服务器之前,您尝试读取的 DataSource 将不存在。
将此错误解释为 是合理的NOT_FOUND
。
推荐阅读
- linux - sed -n 在文件扩展名中创建一个带有“n”的新文件
- php - Laravel spatie medialibrary 上传不适用于服务器上的 suPHP
- sql - 试图解决这个问题——发现“)”(在字符 81 处)需要一个关键字——错误
- powershell - Powershell为数据显示创建临时覆盖区域
- r - 如何创建一个循环遍历 R 中的列索引号的函数?
- php - 电话区号搜索,最佳匹配字符串比较
- r - 如何在R中的组中选择具有某些值的行
- python - igraph 边缘的权重是什么意思?
- python - Python模块'modules'没有属性'millis'
- linux - 如何在 UNIX 中替换空字符?