"我曾经惊叹于他们工具的优雅,现在我决定将这些拿来做成玩具"
我为什么写这些快捷指令

引言

为了摆脱烦人的校园网登录,我决定循着前人的工作1^1,使用 Apple Shortcuts 编写可以自动登入校园网的脚本。有了可以参考的对象,这些移植的工作很快就完成了(事实上只花费了数个小时),这些脚本后的逻辑编写者(已经毕业的学长)功不可没

使用方法

对于宿舍的校园网自动化:
透过 iCloud 获取分享
对于图书馆(未验证)和实验室的校园网自动化:
透过 iCloud 获取分享
学校其他区域的 Wi-Fi 还未开发,请等待更新

详细步骤

使用 Safari 打开以上链接,并在"设置-快捷指令-允许不受信任的快捷指令"中勾选"允许不受信任的快捷指令",如果"允许不受信任的快捷指令"为灰色,那么需要前往 快捷指令 App 运行任意一次快捷指令,再次前往"设置-快捷指令-允许不受信任的快捷指令"中勾选"允许不受信任的快捷指令";

之后点击上方链接,划到快捷指令底部,选择"添加不受信任的快捷指令"(此处为红色);

在快捷指令中心找到 已经添加的快捷指令,配置快捷指令中的账号和密码;这需要你找到第 3,4 个文本框,将其中的提示内容(hint)完全删除,输入你的账户和密码;

大功告成,现在点击完成,在快捷指令中心点击指令,这需要确保你能够的访问 bjfu-wifi 的前端(当然无需在前端认证界面中登录),而并非通用计费网络系统(这部分会在分析中作说明);

现在你应该能够看到网络连接成功的通知了,这时打开大家最爱的 bing.com 试试吧;

为了使你的使用体验更上一层楼,使用 自动化 操作,设定"当iPhone加入'bjfu-wifi'时,运行快捷指令"吧,这样每当你连接(所在区域)的校园网时,就可以点击两下快捷指令通知完成校园网认证。

分析

当我看到金融 16 级徐同学的 Bjfu_Home 项目时,我觉得把 Python 变成 Shortcuts 能行!我着手开始工作前就是验证原项目的可行性,我使用 curl 在电脑上先 GET 到部分数据,再发送 POST 请求并完成验证,这些操作如此容易。但到了 Shortcuts 上一切寸步难行,我没有找到能够抓取 请求报头 的指令,因为"获取网络内容"指令中没有 HEAD 请求。直到我试遍了所有的快捷指令,找到了"扩展URL"就是获取请求报文头部,一切的问题迎刃而解(其实还遇到了 Content-Type 的相关问题 XD)

未完待续

备注

  • [1] 这些快捷指令离不开 @xyz103Bjfu_Home 相关工作,再次致谢
  • [2] 这篇博客在 mak.ink 完成,感谢 @shuding 为便携性 Markdown 做出的工作(我认为这可能是在 iPad 上最好的 Markdown 编辑器)