development, rails

阿里云短信服务Gem

By jere on 2017-08-06 0 Comments

阿里云短信服务,原来的名称是阿里大鱼短信服务。价格亲民,验证码短信或短信通知只有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。

License

MIT License.

打赏

Leave a comment

您的电子邮箱地址不会被公开。