群晖添加短信宝短信通知

发布于 / 小技巧 / 0 条评论

群晖DSM自带的短信通知为clickatell,并不好用。目前找到了一个比较简单的方案,使用短信宝API给群晖添加短信通知。

首先注册一个短信宝账号:http://www.smsbao.com/

接着,使用如下接口就可以发送短信了

http://api.smsbao.com/sms?u=[你的用户名]&p=[md5(你的密码)]&m=[手机号]&c=[urlencode(短信内容)]

例如用户名为admin,密码为admin,发给13800138000,内容为“【测试】测试信息”,请求如下接口即可:

http://api.smsbao.com/sms?u=admin&p=21232f297a57a5a743894a0e4a801fc3&m=13800138000&c=%E3%80%90%E6%B5%8B%E8%AF%95%E3%80%91%E6%B5%8B%E8%AF%95%E4%BF%A1%E6%81%AF

直接将这个接口放入群晖后台会有问题,因为平台要求短信内容必须以“【公司名】”开头。且群晖会添加一个+86的前缀,短信宝并不识别。

这里可以使用PHP写一个中转API:

<?php
if(!isset($_GET['p']) || !isset($_GET['u']) || !isset($_GET['m']) || !isset($_GET['c'])){
    die('invalid param');
}
$p = $_GET['p'];
$u = $_GET['u'];
$m = urldecode($_GET['m']);
$c = urldecode($_GET['c']);

// 如果不以【开头,则取【$_GET['from']】
if($c[0] != "【" && isset($_GET['from'])){
    $c = "【" . $_GET['from'] . "】" . $c;
}
$c = urlencode($c);

// 去掉+86前缀
$m = str_replace('+86', '', $m);

$url = "https://api.smsbao.com/sms?u=$u&p=$p&m=$m&c=$c";
echo file_get_contents($url);

将这个文件重命名为SendSmsApi.php,放在自己的服务器上,或者群晖的webstation里均可。

在群晖的设置中找到通知-短信-新增短信服务提供商,填写测试网址为

https://服务器域名/SendSmsApi.php?from=NAS&p=21232f297a57a5a743894a0e4a801fc3&u=admin&m=13800138000&c=Hello+World

from参数是短信前缀,可以随便填,范围是2-6个字符。

image.png

点击下一步,按照如图设置即可

image.png

接着选中你添加的短信服务商,并填写你账号的用户名和md5加密后的密码

image.png

电话号码用下面这两种方法输入均可正常工作

image.png

点击测试,你将收到一条测试信息。在短信宝后台-请求记录中可以看到发信历史记录

image.png

转载原创文章请注明,转载自: 斐斐のBlog » 群晖添加短信宝短信通知
目前还没有评论,快来抢沙发吧~