干货 | 揭秘一下,如何巧用手机快捷指令一键调用服务端脚本

2021-06-01 16:21:04 浏览数 (1)

1. 前言

大家好,我是安果!

之前写过一篇文章,文中利用 iOS 自带的「 快捷指令 」 闹钟创建个人自动化动作,获取当前位置和实时天气,并通过语音播放出来

黑科技 | 美好的一天,就应该以这款自动化应用脚本开始

快捷指令作为 iOS 端的一款神器,很多自动化的操作都可以通过他完成,如果搭配 「 Siri、触控事件 」使用,可以大大节省我们的时间

本篇文章主要是盘点快捷指令调用服务器脚本的几种方式

2. SSH 运行

第一种方式,新建快捷指令,然后创建一个「 通过 SSH 运行脚本 」的操作

然后,指定服务器主机名、端口号、用户名、密码、认证方式、密码、执行脚本

其中,

  • 认证方式设置为「 密码 」
  • 输入这一栏清空,然后输入待执行的脚本 比如执行脚本的命令为:python3 main.py

为了方便,也可以将服务器的主机名、端口号、用户名、密码、待执行的脚本设置为变量,然后进行引用

最后添加一个「 播放声音 」或「 通知 」的操作,将「 Shell 脚本结果 」作为参数传入即可

这样,就创建一个通过 SSH 调用服务端脚本的快捷指令,点击右下角的图标可以调式运行

3. 调用接口

3-1 实现 API 接口

首先,我们需要将调用脚本的逻辑写成一个 API 接口

比如,我们可以使用 FastAPI 快速撸一个

代码语言:javascript复制
import uvicorn
from fastapi import FastAPI

app = FastAPI()

@app.get("/rsc_api")
async def rsc_api(username: str, password: str):
    if username.strip() and password.strip():
        # 执行操作
        code, result = start(username, password)
        return {
            "code": code,
            "msg": result
        }
    return {
        "code": 1,
        "msg": "用户名或密码不能为空!"
    }

然后,使用 nohup 命令使服务脚本在后台运行

代码语言:javascript复制
# 后台运行脚本
# 绑定8000端口
# 日志目录:/rsc.log
nohup hypercorn test_api:app --bind 0.0.0.0:8000 > /rsc.log 2>&1 &

3-2 快捷指令

我们新建一个快捷指令,添加一个「 URL 」的操作,指定请求的地址

代码语言:javascript复制
# 请求地址URL
http://192,168.39.91:8000/rsc_api

然后,再添加一个「 获取 URL 内容 」的操作

展开这部分操作,填入请求方法、头部、请求体( 也可以通过变量的方式设置进去 )

接着,添加一个「 文本 」操作

将输入内容填充为「 URL 的内容」,将响应的结果展示出来

最后,可以点击后下角的运行进行调试

4. 扩展操作及 Siri、触控

4-1 扩展操作

快捷指令还有几个比较常用且好用的操作,比如:

  • 匹配文本
  • 获取匹配文本的组
  • 替换文本
  • 如果

这些操作应对一些复杂精准的场景,可以对响应结果进行二次处理及逻辑流程预设,更方便我们使用

4-2 Siri 语音控制

如果设备开启了 Siri 语音控制,那么使用「 快捷指令 Siri 」可以一键执行脚本

4-3 触控 快捷指令

对于不想使用 Siri 的读者,触控功能也可以与快捷指令关联上,一键执行

比如,使用触控功能快速打开支付宝的支付码

首先,新建一个快捷指令,命名为「 支付宝支付 」

然后,新建一个 「 URL 」的操作

指定内容为:

alipayqr://platformapi/startapp?saId=20000056

接着,新建一个「 打开 URL 」的操作,然后保存

最后,进入到设置,依次选择辅助功能 - 触控 - 轻点背面 - 轻点两下 - 选择上面创建的快捷指令

这样平时需要支付的时候,快速轻点两下手机背面,就可以快速调出支付宝支付二维码

5. 最后

有人可能会说,服务端直接使用定时任务运行脚本不就行了,为什么要这么麻烦?

实际上,有些场景可能需要我们主观地去运行脚本,这时候手机端主动触发更满足我们的需求

如果你的手机刚好越狱了,可以试试安装「 autotouch」、「 activator 」等插件实现 iOS 端的完全自动化

0 人点赞