阿里云短信服务,原来的名称是阿里大鱼短信服务。价格亲民,验证码短信或短信通知只有4分5一条,申请也方便。
项目正好有一个短信发送的功能,研究了一下后便试用一下阿里短信,感觉很不错。
已有的ruby gem感觉不是自己想要的风格,并且只有发送没有状态查询接口,于是乎就自己写了一个,项目地址:https://github.com/jerecui/aliyun-cloud_sms
名字是随便取的,aliyun::sms已经有人用了。
Aliyun::CloudSms
基于阿里短信服务接口,支持短信发送与状态查询。
Installation
在项目的Gemfile里添加下面一行
gem 'aliyun-cloud_sms'
执行
$ bundle
或者你也可以
$ gem install aliyun-cloud_sms
用法
全局客户端
在config/initializers目录添加一个文件aliyun-cloud_sms.rb
Aliyun::CloudSms.configure do |config|
config.access_key_secret = 'your key secret'
config.access_key_id = 'your key id'
config.sign_name = 'your sign name'
end
多账户支持
有的服务可能会需要给不同的应用发送。
client = Aliyun::CloudSms.new('your_access_key_id', 'your_access_key_secret', 'your_sign_name')
client.send_msg('13800000000', 'SMS_80190090', {"customer": "jere"} )
短信发送
如果是全局客户端, 可以使用:
Aliyun::CloudSms.send_msg('13800000000', 'SMS_80190090', {"customer": "jere"} )
template_params
可以传字符串,以多账户支持为例:
client.send_msg('13800000000', 'SMS_80190090', "{\"customer\":\"jeremy\"}" )
状态查询
client.query_status(mobile, send_date = "#{Time.now.strftime('%Y%m%d')}", biz_id = nil, page_size = 1, current_page = 1)
# e.g.
client.query_status '13800000000'
client.query_status '13800000000', '20170806'
client.query_status '13800000000', '20170806', '109177619494^4112265203597'
client.query_status '13800000000', '20170806', nil, 10
client.query_status '13800000000', '20170806', nil, 10, 2
贡献
欢迎PR。