Shell脚本(8)——手机扫码写入智能表格
创作者俱乐部成员
今天要实现的是:手机扫描二维码、条形码,结果自动写入智能表格。
首先,在wps里新建智能表格,打开,效率|高级开发|AirScript脚本编辑器,新建一个脚本,内容如下,意思是把收到的content写入下一行。
点击脚本令牌,复制粘贴到记事本。
点击左侧三个点,复制脚本webhook,粘贴到记事本。
💡 | let r = ActiveSheet.UsedRange.RowEnd + 1 ActiveSheet.Range("A" + r).Value2 = Context.argv.content |
然后,在手机里安装Binary Eye以及termux两个应用,这些应用可以在F-Droid里找到
在Binary Eye里,选中,设置|首选项|转发扫描结果,转发URL设置为http://127.0.0.1:8080/cgi-bin/eye.cgi,请求类型为POST application/json。
在termux里,先安装busybox,命令是pkg install busybox
然后新建文件夹,mkdir cgi-bin
然后建立脚本,其中xxx、yyy、zzz分别来自上面记事本里记录的webhook和令牌:
💡 | cat > ./cgi-bin/eye.cgi <<EOF #!/data/data/com.termux/files/usr/bin/sh echo -e 'Content-type: text/plain; charset=utf-8\n' sed 's/.*/{"Context":{"argv":&}}/' | curl -s https://www.kdocs.cn/api/v3/ide/file/xxx/script/yyy/sync_task -H 'AirScript-Token: zzz' -d @- EOF |
最后,手机里的termux启动httpd服务,busybox httpd -p 8080
打开Binary Eye,扫码的结果就会自动写入智能表格的下一行
简单来说,原理如下:
智能表格支持通过http请求执行脚本,脚本是把请求里的content写入下一行
Binary Eye这个扫码app支持把扫描的结果发送到指定URL
两者之间,缺少的就是智能表的请求里要包含webhook和令牌信息
于是,手机上可以用busybox里的httpd简单的开个cgi服务,把Binary Eye发送的请求加上webhook和令牌信息,再发送到智能表,这样这条路就通了
另外可以看出,busybox这个小工具,在国产Linux上自带,windows里有个600K的独立exe,手机可以通过termux获得,所写的脚本在这些平台基本是通用的。
cgi有太多方法可以实现,这不是最好的,但它好在足够小、脚本最够短,算是唾手可得的简单工具。
创作者俱乐部成员
创作者俱乐部成员