使用Ruby语言调用短信接口发送验证码短信教程
Ruby语言对接验证码短信接口DEMO示例
<p><img title="使用Ruby语言调用短信接口发送验证码短信教程(图1)" alt="使用Ruby语言调用短信接口发送验证码短信教程(图1)" style="max-width:100%!important;height:auto!important;" src="/uploads/allimg/20240526/1-240526224434D3.jpeg" class="html_titleimg_img" /></p> <p>Web 应用里,短信验证码是常见的安全验证手段,注册、登录、找回密码都会用到。这篇文章讲怎么用 Ruby 调用短信接口,发送验证码短信。接口选用 <code>https://api.3yit.com/api/send-sms-single</code>,支持 POST 请求,返回 JSON 格式的数据。</p> <h2>准备工作</h2> <ul><li>获取接口文档:到短信服务商处下载接口文档,找到自己的 <code>sp_id</code>、<code>password</code>(或签名算法)等关键信息。</li><li>Ruby 环境:确认电脑上装好了 Ruby。</li><li>HTTP 客户端库:Ruby 的选择不少,比如 <code>Net::HTTP</code>、<code>RestClient</code>、<code>HTTParty</code>。这里以 <code>Net::HTTP</code> 为例。</li></ul> <h2>获取接口参数</h2> <p>登录智慧云信官网,选择对应的产品(如【验证码】),在上方选项卡中点击【开发者】→【HTTP开发文档】,就能看到具体的 API 方法名称,以及各参数的 key 和对应值,通常包括 <code>sp_id</code>、<code>mobile</code>、<code>content</code>、<code>password</code> 等。各参数含义如下:</p> <ul><li><code>sp_id</code>:产品编号,全局唯一,一般由 6 位数字组成。</li><li><code>mobile</code>:接收短信的手机号码。</li><li><code>content</code>:短信内容,包含签名和正文。例如“【智慧云信】您的验证码是456790,请妥善保管”,其中【智慧云信】是签名,需在签名报备中申请;后面的提示语是短信模板,需在模板报备中申请,审核通过后才能发送。</li><li><code>password</code>:用 SP_ID 密码经 MD5 加密后生成的接口密码(非登录密码),由 32 位随机字符串组成。</li></ul> <h2>编写代码</h2> <p>下面是一个简单的 Ruby 脚本,用来调用短信接口发送验证码短信:</p> <pre><code>require 'net/http' require 'uri' require 'openssl' require 'json'
接口配置
API_URL = 'https://api.3yit.com/api/send-sms-single' SP_ID = '5xxxxx' # 从接口文档中获取 PASSWORD = 'xxxxxxxxxxx' # 32位md5处理后的密码,从接口文档中获取
待发送的手机号和短信内容(假设验证码为123456)
MOBILE = '176xxxxxxxx' CONTENT = '【签名】验证码:123456'
构建请求参数
params = URI.encode_www_form({ 'sp_id' => SP_ID, 'mobile' => MOBILE, 'content' => CONTENT,
如果有签名算法,则计算签名并添加到params中,这里以密码方式为例
'password' => PASSWORD,
扩展号(可选)
'ext' => '123' })
发送POST请求
uri = URI(API_URL) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true
request = Net::HTTP::Post.new(uri.request_uri) request['Content-Type'] = 'application/x-www-form-urlencoded' request.body = params
response = http.request(request)
解析响应内容
json_response = JSON.parse(response.body)
输出结果
puts json_response
检查响应状态
if json_response['code'] == 0 puts "验证码发送成功,msg_id: #{json_response['msg_id']}" else puts "发送失败:#{json_response['msg']}" end</code></pre> <h2>注意事项</h2> <ul><li>密码、签名属于敏感信息,不要硬编码在代码里,建议用配置文件或环境变量管理。</li><li>示例只处理了返回码为 0 的情况,实际项目建议把网络错误、请求超时等各类错误都处理到。</li><li>如果服务商提供签名算法且选用签名方式,要按算法要求计算签名,再把它加到请求参数里(示例以密码方式为例)。</li><li>建议记录发送日志,包括发送时间、手机号、验证码、响应结果,方便排查问题。</li><li>正式上线前,对发送功能做充分测试,确认功能正常稳定。</li></ul> <p>按上面几步走,用 Ruby 调短信接口发验证码就不成问题。</p>
<p><strong>其他语言教程:</strong><a href="https://www.3yit.com/smsapi/262.html" title="PHP短信接口教程">PHP</a> · <a href="https://www.3yit.com/smsapi/282.html" title="Java短信接口教程">Java</a> · <a href="https://www.3yit.com/smsapi/283.html" title="ASP短信接口教程">ASP</a> · <a href="https://www.3yit.com/smsapi/284.html" title="ASP.NET(C#)短信接口教程">ASP.NET(C#)</a> · <a href="https://www.3yit.com/smsapi/285.html" title="JSP短信接口教程">JSP</a> · <a href="https://www.3yit.com/smsapi/286.html" title="Node.js短信接口教程">Node.js</a> · <a href="https://www.3yit.com/smsapi/298.html" title="Delphi短信接口教程">Delphi</a> · <a href="https://www.3yit.com/smsapi/300.html" title="Go短信接口教程">Go</a> · <a href="https://www.3yit.com/smsapi/301.html" title="Python短信接口教程">Python</a> · <a href="https://www.3yit.com/smsapi/303.html" title="Shell短信接口教程">Shell</a> · <a href="https://www.3yit.com/smsapi/304.html" title="VB短信接口教程">VB</a> · <a href="https://www.3yit.com/smsapi/305.html" title="C++短信接口教程">C++</a> · <a href="https://www.3yit.com/smsapi/306.html" title="C短信接口教程">C</a>。更多信息见<a href="https://www.3yit.com/smsapi/613.html" title="短信API接入指南">短信API接入指南</a>。</p>
<p>代码里的 API 地址、账号和密码替换成你自己的就能跑通。如果还没有账号,去智慧云信官网注册一个,注册就能免费测试,验证码、通知、营销短信都支持。</p>
作者:智慧云信通信技术团队
技术审核:国际短信与号码检测产品组
最后更新:2026-08-13
本文主题:使用Ruby语言调用短信接口发送验证码短信教程
本文围绕「使用Ruby语言调用短信接口发送验证码短信教程」展开,结合智慧云信平台在短信接口API场景下的产品能力与客户接入经验整理。不同国家/地区的 Sender ID、模板审核、计费方式和合规要求可能变化,实际发送前建议以当前通道审核与项目沟通结果为准。