问题描述
我正在开发一款移动应用程序,它能够记录室内骑行的GPS数据,就像运动员绕着赛车场转圈一样。根据旋转自行车提供的速度测量值(相对于任意GPS路线)来计算GPS点相对容易。
该应用程序正在使用Strava API以GPX格式(更精确地说,是gpx.gz)上传我记录的活动。该应用程序获取范围为OAuth
的{{1}}令牌。 Upload POST返回201,并且上传也很快以200成功代码完成。但是,当我查看Strava用户仪表板后,没有任何活动出现。当我尝试通过Strava的Swagger API场景查看上述活动时,它会告诉我“找不到记录”。
"activity:write"
“在乙醚中迷失”的活动ID示例:4381670165、4381744693、4381960409。
我的问题是我没有任何有关可能出问题的调试信息。我收到了成功代码,但是这些活动从未真正实现过。此外,我无法通过其Swagger检查Upload的状态,因为那里的OAuth令牌仅具有读取权限。
由于我正在生成GPX文件,因此我通过手动上传来对其进行了测试。第一个作为虚拟骑(https://www.strava.com/activities/4094942758),第二个作为标记为室内骑行的骑(https://www.strava.com/activities/4094974788)。他们都不显示任何GPS数据。但是该文件包含数据。
那么,也许GPX文件有问题?这是两个:https://drive.google.com/drive/folders/1dkUvrLxW2r3tvQqvoqAkOB9998N9uLn7?usp=sharing
该应用程序是用Flutter编写的,并使用了我的curl -X GET "https://www.strava.com/api/v3/activities/4381960409" -H "accept: application/json" -H "authorization: Bearer zzzzzzzzzzzzzzzzzzzzzzzzzzzz"
https://www.strava.com/api/v3/activities/4381960409
{
"message": "Record Not Found","errors": [
{
"resource": "Activity","field": "id","code": "invalid"
}
]
}
和strava_Flutter
的派生词。
rw_tcx
正如我提到的,它成功完成了,上传POST,然后又返回200,这在strava_Flutter的胆量中。
解决方法
我犯了多个错误:
- 我正在处理多种文件格式(FIT,GPX,TCX),而我上载的实际文件是TCX。对于Strava开发人员而言,该系统能够很好地吞下并从TCX中提取信息,这一点倍感荣幸,没有返回错误代码。很好。
- GPS无法显示的主要原因:我交换了经纬度坐标。不幸的是,这也会造成混乱,特别是如果有人累了。 https://macwright.com/lonlat/经过一些更正后,GPS现在显示:https://www.strava.com/activities/4104607928