- 点击右上角的 “fork” 复制这个仓库,注意取消勾选“Copy the master branch only”(若没注册过 GitHub 账号,按照指示注册一个)
- 打开 Canvas,进入“设置”页面
- 点击“创建新访问许可证”
- “用途”随便填一个,“过期”建议留空,点击“生成令牌”
- 复制生成的令牌
- 在自己 fork 的仓库,进入“Settings”
- 选择“Secrets - Actions”,点击“New repository secret”
- “Name”为“CANVAS_TOKEN”,“Value”为刚才复制的令牌
- 添加 Canvas Token 完成
下面以 Windows 系统为例,借助“Graph 认证辅助工具”(在本仓库开源)进行配置。如有其它需求,可参考手动配置 Graph Token
-
在 Releases 页面下载“TodoSynchronizer.QuickTool.exe”,打开。
-
点击“获取 Graph 认证”,跳转到浏览器
-
授权 MyTodoApp(务必核对权限是否与图中一致)
- 完成后,回到程序,输入密钥以保护用户凭证
- 在自己 fork 的仓库,切换到 graphtoken 分支
- 编辑 graphtoken.asc 文件
- 粘贴刚才复制的内容(把原先的覆盖掉,注意不要有多余的换行),直接提交
- 再次到“Secrets”里,创建一个新条目,“Name”为“KEY”,“Value”为刚才输入的密钥
- 在自己 fork 的仓库,进入“Settings”
- 选择“Secrets - Actions”,点击“New repository secret”
- “Name”为“DIDA_CREDENTIAL”,“Value”按照下面的格式填写
{"phone":"你的手机号","password":"你的密码"}
- 添加滴答清单登录信息完成
- 点击“Actions”选项卡,点击按钮启用
- 左侧选择合适的项目,右侧点击“Run workflow”
- 刷新,可进入 Action 查看详情。Run 步骤下面的内容为程序的执行输出
- 编辑仓库根目录下的
config.yaml
文件,可以调整同步程序设置
对于公开仓库,GitHub Actions 是免费的;而对于私有仓库,GitHub Actions 每个月有 2000 分钟的免费额度,超出会有巨额收费(在这里看用量)。本项目每次运行大约需要 2min,也就是说每个月顶多能运行 1000 次,可能不够用。强烈建议保持仓库为公开状态。
复杂的配置步骤就是为了保证账号和令牌的安全性。Canvas Token 的安全性由 GitHub 保证,Graph Token 的安全性由 AES 算法保证。
AccessToken 的有效期只有 1 小时,RefreshToken 的有效期可能是 90 天(参考这里,我看不明白)。为确保令牌永不过期,需要在每次运行时更新令牌。Secrets 不支持使用 Action 操作更新,故只能将令牌加密后保存到存储库的 graphtoken 分支,密钥保存在 Secrets 内。
正如授权时显示的应用权限所示,“创建、读取、更新和删除你的任务和计划”和“保持对已向 MyTodoApp 授予访问权限的数据的访问权限”是应用正常运行必须的权限,“读取您的个人资料”用于验证登录。程序不会也不可能索要您的敏感信息。在这里可以管理连接到 Microsoft 账户的应用。
换用个人邮箱注册的账号,不要用学校/机构的账号。
如果不明白为什么失败,到原仓库提交 issue
编辑config.yaml
文件,把VerboseMode
改成false