ruby-on-rails – Rails 3和Twilio进行电话验证
发布时间:2020-12-17 03:45:01 所属栏目:百科 来源:网络整理
导读:我在Rails 3中构建一个应用程序,使用twilio来验证企业的存在.基本上,当您创建新的商务时,我会随机生成一个6位数字,然后使用此验证码调用商家电话号码,用户需要将其输入系统以完成注册过程.我无法找到有关如何设置此设置的相关示例.我找到了 this,但它看起来
我在Rails 3中构建一个应用程序,使用twilio来验证企业的存在.基本上,当您创建新的商务时,我会随机生成一个6位数字,然后使用此验证码调用商家电话号码,用户需要将其输入系统以完成注册过程.我无法找到有关如何设置此设置的相关示例.我找到了
this,但它看起来非常过时,似乎与Rails 3不兼容.
twilio-rb gem的文档也令人困惑.
有没有人知道任何例子或有任何代码样本可以指向我正确的方向? 解决方法
正如我在你的问题评论中所说,我是你提到的twilio-rb gem的作者.在我的头顶,我会实现一个你发布电话号码的验证资源.
POST /verifications.voice { telephone_number: '+12125551234' } 在create action中,使用Twilio :: Call.create创建一个使用Twilio的新调用 def create @verification = Verification.new params[:verification] if @verification.save Twilio::Call.create to: @verification.telephone_number,from: YOUR_CALLER_ID,url: verification_url(@verification,format: :voice) # 201 created and return verification code etc else # Handle errors end end 您还需要解决twilio-rb可能引发的任何API错误. url指的是验证资源实例的show动作.然后Twilio将拨打提供的电话号码,并且当呼叫被连接时,将请求该URL,例如,GET /verifications/1.voice所以您需要一个显示视图,询问验证码并使用 res.gather num_digits: 4,action: twilio_hack_verification_url(@verification,:format => :voice),method: 'POST' do |form| form.say 'Please enter the your 4 digit verification code' end 由于Twilio目前没有实现PUT动词,因此您将向您的资源添加成员 resources :verifications do member { post 'twilio_hack' } end 然后在您的控制器中使用用户输入更新对象: def twilio_hack @verification = Verification.find(params[:id]).tap do |v| v.user_input params['Digits'] v.save end if @verification.confirmed? # handle success else # handle failure end end 最后,在您的模型中,您将需要生成验证码的代码,并验证是否已确认 class Verification < ActiveRecord::Base before_save -> { self[:confirmed] = true if user_input == verification_code },if: user_input before_create -> { self[:verification_code] = rand.to_s[2..5] } end 这一切都是未经测试的,并且在大约2分钟的时间里我想到了,但它应该让你开始. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |