苹果手机实时展示「流量、话费」,极空间+iOS,让运营商go out
虽然我知道运营商经常给我发【余额不足提醒】【信用停机保障】是为了告知我手机快没话费了,要注意充值确保服务。
但是每个月都叮叮叮的发个不停,仿佛在说:快点充钱!快点充钱!快点充钱!真的是神烦。
大家好,这里是Cherry,喜爱折腾、玩数码,热衷于分享数码玩耍经验~
苹果手机不像安卓,可以很清爽的在手机顶部展示出当前套餐的流量、话费等信息,而运营商提供的小组件也没办法直观的展示,还需要点进 APP 里才能看到具体的信息。
然后我一边骂着苹果手机封闭、垃圾,一边又继续买新款使用。没辙,养成的习惯就是很难改变了。
今天分享一个利用极空间私有云部署 「电信套餐查询 API」 的服务,让我们可以通过手机号+服务密码实时查询电信手机的套餐余量,并且通过苹果小组件工具 Widgy 进行自定义展示的方法。

支持青龙
支持通过 json push_config 字段独立配置通知渠道
本地保存登录 token ,有效期内不重复登录
Docker 独立部署 API 查询服务
🔻大致可展示的套餐内容如下,这是使用青龙面板展示的官方案例。

一、极空间部署 china-telecom-monitor
首先打开极空间个人空间,在任意位置创建一个china-telecom-monitor文件夹,并且在其下创建config子目录。

接着极空间的 docker 应用,选择 Compose 标签并新建一个项目。将下方的yaml文件复制到黑框内,并且修改【路径】、【你的电信号码】这两个内容。

🔻yaml 代码
name: china-telecom-monitor
services:
china-telecom-monitor:
image: cp0204/chinatelecommonitor:main
container_name: china-telecom-monitor
network_mode: bridge
ports:
- 10000:10000
volumes:
- 路径/china-telecom-monitor/config:/app/config
environment:
# 手机号白名单,防止被恶意使用
- WHITELIST_NUM=你的电信号码
restart: unless-stopped
这里的【路径】,可以点击黑框上方的查询路径按钮查询。切换到我们刚才创建的文件夹根目录下,点击复制路径按钮替换【路径】中文字符。

项目部署完成以后,通过浏览器输入以下 URL 地址,就可以获得当前手机号码的电信套餐结果。
http://极空间ip:10000/summary?phonenum=电信电话&password=服务密码
如果你忘记服务密码的,可以通过发送短信 551#姓名#身份证号 到 10001 查询。

二、苹果手机配置 Widgy
Widgy Widgets 是一款苹果小组件 DIY 应用,可以通过 App Store 下载,能免费使用 1个 小组件卡槽。
网友@LRZ9712 分享了他的 Widgy 电信面板小组件,在里面我们可以配置通过查询 API 返回的数据结果。
下载了 Widgy 以后,可以打开在 safari 浏览器加载导入地址:widgyURL://widgy.icu/api/v1/widgy/9dad2957-5453-4ca7-8b6e-0e4378ac6026
整个面板分为两个部分,左侧是天气、日期等基本信息,右侧是电信套餐返回的结果,这个模板里定义了话费、剩余流量两个内容。
具体的操作方法如下图,选择任一文字,点击最右侧的设置,选择接入点-JSON 端点。

将内置的 JSON 替换为我们刚才查询的 API URL 并运行,然后从返回的 JSON 里选择自己需要的数据。
比如图片里的剩余流量:86.12GB,后续就会在小组件上展示。

当然,你也可以根据你自己的需求定义 widgy 的界面和展示内容,具体的接口URL 规范如下,自行修改 JSON 即可。
1️⃣http://极空间ip:10000/userFluxPackage 返回流量包明细
2️⃣http://极空间ip:10000/qryShareUsage 返回共享套餐各号码用量
3️⃣http://极空间ip:10000/summary 数据简化接口,非原样返回,简化后返回格式
{
"phonenum": "18912345678", // 手机号码
"balance": 0, // 账户余额(分)
"voiceUsage": 39, // 语音通话-已使用时长(分钟)
"voiceBalance": 2211, // 语音通话-剩余时长(分)
"voiceTotal": 2250, // 语音通话-总时长(分钟)
"flowUse": 7366923, // 总流量-已使用量(KB)
"flowTotal": 7366923, // 总流量-总量(KB)
"flowOver": 222222, // 总流量-超量(KB)
"commonUse": 7273962, // 通用流量-已使用量(KB)
"commonTotal": 25550446, // 通用流量-总量(KB)
"commonOver": 222222, // 通用流量-超量(KB)
"specialUse": 92961, // 专用流量-已使用量(KB)
"specialTotal": 215265280, // 专用流量-总量(KB)
"createTime": "2024-05-12 14:13:28", // 数据创建时间
"flowItems": [ // 流量类型列表
{
"name": "国内通用流量(达量降速)", // 流量类型名称
"use": 10241024, // 流量包-已使用量(KB)
"balance": 0, // 流量包-剩余量(KB),当为负值时则是超流量
"total": 10241024 // 流量包-总量(KB)
},
{
"name": "国内通用流量(非畅享)",
"use": 1,
"balance": 10241023,
"total": 10241024
},
{
"name": "专用流量",
"use": 1,
"balance": 10241023,
"total": 10241024
}
]
}
对了,以上提到的 URL 都是以局域网内网来展示的。如果想在 4G/5G 模式下使用这个服务,还需要通过极空间内置的服务将端口转发到域名里。
方法1:通过 DDNS 服务,将公网IP 映射到固定的域名里。

方法2:通过极空间内置的花生壳 DDNS 服务,将端口转发到花生壳提供的免费域名中。

方法3:通过极空间内置的节点小宝服务进行异地组网,让手机和 NAS 长期处于一个虚拟子网内。

总结
以上,就是我们如何通过极空间私有云搭建自己的「电信套餐查询服务 API」,并且通过 widgy 应用实现 话费、流量等大量套餐余量数据在手机屏幕上实时展示的方法。
如果你是想每天在家里看到,那么直接填入局域网地址即可;如果你想在外面随时随地看到,那么就可以通过极空间内置的 DDNS、花生壳、节点小宝等网络工具,帮助你搭建外网访问渠道。
极空间私有云拥有包含 arm、x86 在内的多款 NAS 型号,两盘位、四盘位均有,双11期间,国补 10% + 京东Plus 9折 + 各类满减券,可以便宜不少,如果最近有购买计划的,可以优先考虑 Z2 Ultra、Z4Pro+ 等几款设备~
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

可爱的小cherry
校验提示文案
雨的心跳
校验提示文案
timesf1
校验提示文案
H-Yan
校验提示文案
可爱的小cherry
校验提示文案
平凡中的嘿白调
校验提示文案
冰美式走糖
校验提示文案
H-Yan
校验提示文案
timesf1
校验提示文案
冰美式走糖
校验提示文案
平凡中的嘿白调
校验提示文案
雨的心跳
校验提示文案
可爱的小cherry
校验提示文案
可爱的小cherry
校验提示文案