type
Post
status
Published
date
Dec 26, 2023
slug
summary
平时使用Keep手机上的APP记录跑步(记录轨迹和步频等),跑步的时候APP连接Keep手环记录(记录心率),同步到Strava上。找了一下,发现了Running Page这个项目,基本能够实现我的要求,主要思路:Running Page每小时同步Keep数据到自己数据库,同步的同时再把新增加的跑步记录备份到Strava上。
tags
跑步
category
技术分享
icon
password

一、目的

个人平时主要是在Strava和Keep上保存自己的跑步数据,2023年12月换了安卓手机,原来的苹果手机上面健身同步到Keep和Strava的方法行不通了。
捡了个Keep手环,希望达到的目的:平时使用Keep手机上的APP记录跑步(记录轨迹和步频等),跑步的时候APP连接Keep手环记录(记录心率),同步到Strava上。找了一下,发现了Running Page这个项目,基本能够实现我的要求,主要思路:Running Page每小时同步Keep数据到自己数据库,同步的同时再把新增加的跑步记录备份到Strava上。

二、操作步骤

按照Running Page官方手册,配置了自己Keep到自建Running Page的过程,使用Vercel生成了自己的跑步主页:https://run.ddr888.cc/ 。缩放到全国范围,会显示跑过的国家和城市(这里城市里程应该有问题,可能因为我22年有太多室内跑步吧)。
notion image
  • Pull Request到自己的仓库,并从自己的仓库中clone代码库 这一步做PR,可以减少后续上传自己仓库的麻烦,同时留下痕迹
  • 本地运行环境准备
    • miniconda:conda是一个包管理和运行环境管理工具,最小化的Anaconda替代品。参考官网安装。准备一个running环境,使用python 3.8
    • 替换Mapbox token
      • 需要绑定信用卡,未做
    • 个性化信息
      • 参考官网
    • 从keep下载跑步数据,下载GPX数据文件到本地方便以后保存和在其他跑步应用中共享
      • 这里有个问题,截止2023.12.27,我Keep上的跑步次数是406次,但是下载完再GPXOUT目录里面只有191次,其他的不知道是没取到还是过滤掉了,也不知道以后通过GPX文件生成自己完整跑步数据会不会有丢失。
    • 生成首页SVG等
      • 调整run_page\gpx_to_strava_sync.py策略,把这段注释掉,不然会把Strava近7天的数据回写,导致重复
        • 调整Action逻辑.github\workflows\run_data_sync.yml,停止手动执行,调整个性化变量,在合适的地方增加自动执行同步到Strava的逻辑
          • 在自己仓库的设置里面增加5个secret
            • 设置 KEEP_MOBILE
            • 设置 KEEP_PASSWORD
            • 设置 STRAVA_CLIENT_ID
            • 设置 STRAVA_CLIENT_SECRET
            • 设置 STRAVA_CLIENT_REFRESH_TOKEN
            • notion image
          • 上传自己的Github仓库
          • Vercel部署配置
            • 第一次使用,首页点击sign up,使用Github帐号继续
            • import Github里面自己的仓库,其他默认就会自动部署,以后只要有代码提交,vercel就会自动重新部署,只要在下面的action里面配置好定时执行就全部自动化了
            • 部署完成,就会给你应用链接
            • setting里面增加自己的域名
            • 在自己域名的DNS解析里面增加CNAME解析到应用链接即可
          Vercel是一个云服务平台,专为前端开发者设计,提供了一体化的解决方案,可以快速将网站和应用程序部署到各种环境中。这个平台非常灵活、可扩展且安全,非常适合开发者在不同平台和环境中进行开发和部署。Vercel支持静态网站和动态网站的应用部署、预览和上线。用于取代Github Pages,速度更快。

          三、其他说明

          • 在本地把GPX文件数据传输到Strava的命令
            • 数据错乱后,重新生成run_page\data.dbsrc\static\activities.json文件的方法
              • 在配置Strava API过程中发现,要打开https://www.strava.com/settings/api 创建自己应用token的页面,必须要使用美国的正确IP,这里需要多试试,才能找到连接Strava的各类信息