Git Product home page Git Product logo

china_sms's Introduction

ChinaSMS 短信平台 Ruby 接口

Build Status

支持以下短信平台

所有短信平台都禁止发送私人短信,并要求在短信内容末尾加上签名后缀,如【19屋】

  • 云片网 专注于帮助企业与客户更好的沟通, 提供短信服务, 功能强大, 可以配置多种模板, 实时性高, 定制型强, 价格优惠.
  • 推立方 专注于注册校验码等实时应用,需要配置内容格式和签名,会自动在短信加上签名后缀。短信计数:移动/联通每条短信的最大长度为64字符,电信每条最大长度60字符(半角、全角各算一个)。超过该长度后,短信后面自动增加分页信息(x/y),此时,每条短信最大长度需要再减3(不超过10页)
  • 短信宝
  • 畅友网络 群发短信需要半小时左右的时间审核,星期五等繁忙时段会有几个小时的延时,不适合发送注册校验码等实时短信,单次最多发送500个号码
  • 亿美软通
  • 螺丝帽

感谢 云片网19屋活动平台 提供短信赞助。

安装

加入以下代码到 Gemfile:

gem 'china_sms'

然后执行:

$ bundle

或者直接安装:

$ gem install china_sms

使用

# 支持 :tui3, :yunpian, :smsbao, :chanyoo, :emay, luosimao  短信接口
ChinaSMS.use :tui3, username: 'YOUR_USERNAME', password: 'YOUR_PASSWORD'
ChinaSMS.to '13912345678', '[Test]China SMS gem has been released.'


# :yunpian
#   如果content(第二个参数) 是字符串
#     调用 通用接口 发送短信
#   如果是 Hash
#     调用 模板接口 发送短信
#     可选参数:
#       :tpl_id 默认是 2

ChinaSMS.use :yunpian, password: 'YOUR_API_KEY'

# 通用接口
ChinaSMS.to '13912345678', '[Test]China SMS gem has been released.'
ChinaSMS.to '13912345678', 'China SMS gem has been released.【Test】'    # luosimao 的签名要放在后面

# 模板接口
# 模板是 "您的验证码是#code#【#company#】”
tpl_params = { code: 123, company: '19wu' }
ChinaSMS.to '13912345678', tpl_params, tpl_id: 1

# 语音接口
ChinaSMS.voice_to '13912345678', '6626'

贡献

git clone [email protected]:saberma/china_sms.git
cd china_sms
bundle console # 请不要使用 irb,可能会有依赖问题

TODO

  • 签名作为参数,根据各个服务提供商的不同来确定放在内容前面还是后面,例如 luosimao 要求放在内容后面

安全性

在安全性方面,很多接口都是使用用户登录明文密码,而云片网、螺丝帽、推立方 和 短信宝 要好一些。

  • 云片网,使用HTTPS,API使用独立的apikey,不使用登录名和密码,支持 IP 白名单
  • 推立方,不使用登录密码,而是由系统自动生成一长串 API_KEY,专用于接口调用
  • 短信宝,使用登录密码,但在调用时要先转成 MD5
  • 螺丝帽,使用HTTPS,登录密码

china_sms's People

Contributors

fahchen avatar giaogiaocat avatar lyfeyaj avatar roymax avatar saberma avatar totothink avatar villins avatar zhenning avatar zlx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

china_sms's Issues

能够查看 API Call 之后的返回代码么

例如推立方会返回各种 Error Code,表示发送之后遇到了什么情况。如果不能查询这个的话就难以知道发送成功与否。这样还不如自己手动进行 API Call? 请问这个 gem 现在有提供这一功能么

发布新版本

目前 0.0.7 的版本中不支持 luosimao 通道。希望发布一个新的版本

rails engine 依赖中不能引用 github 的地址

云片通用接口发送短信失败

在console尝试调用云片的通用接口:

> ChinaSMS.use :yunpian, password: 'API_KEY'
> ChinaSMS.to '13912345678', '[Test]China SMS gem has been released.'

返回结果:

=> {"code"=>5, "msg"=>"未找到匹配的模板", "detail"=>"未自动匹配到合适的模板"}

推立方配置说明疑问

我看见推立方管网上的短信API配置说明中有一条:

  1. 无论哪个通道,都要验证调用的IP地址。所以,请正确输入调用的IP地址。

请问这是什么意思?难道每次给客户发短信的时候,还要验证请求的IP地址?如何验证?

0.0.6 云片模板发送有问题

ChinaSMS.use :yunpian, password: 'xxxxx'
ChinaSMS.to '13912345678', {code: 1234, company: 'ys' }, tpl_id: 1

结果执行第二行的时候出错。

oMethodError: undefined method `strip' for {:code=>1234, :company=>"ys"}:Hash
    from /Library/Ruby/Gems/2.0.0/gems/china_sms-0.0.6/lib/china_sms.rb:22:in `to'
    from (irb):2
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.1.0/lib/rails/commands/console.rb:90:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.1.0/lib/rails/commands/console.rb:9:in `start'
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:69:in `console'
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /Library/Ruby/Gems/2.0.0/gems/railties-4.1.0/lib/rails/commands.rb:17:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

luosimao 服务不能正常使用

/Users/greatghoul/.rvm/gems/ruby-2.0.0-p481/gems/china_sms-0.0.7/lib/china_sms.rb:14:in `const_get': uninitialized constant ChinaSMS::Service::Luosimao (NameError)
    from /Users/greatghoul/.rvm/gems/ruby-2.0.0-p481/gems/china_sms-0.0.7/lib/china_sms.rb:14:in `use'
    from /Users/greatghoul/Workspace/nologo/config/initializers/china_sms.rb:1:in `<top (required)>'

支持同时使用多个service

现在一次只能使用一个service,想用多个,就得自己每次传入password 之类的,还不如自己写个新的了

支持多个service后,可以做个service自动切换功能,按service的可用性自动切换

可选通过async方式来发送

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.