我正在Rails 3中構建一個應用程序,使用twilio來驗證商家存在。基本上,當您創建一個新的商務時,我隨機生成一個6位數的號碼,然後用此驗證碼調用業務電話號碼,用戶需要將其輸入系統以完成註冊過程。我無法找到任何相關示例來說明如何實現這一設置。我發現this,但它看起來非常過時,並且看起來並不適用於Rails 3。 twilio-rb gem的文檔也很混亂。Rails 3和Twilio做電話驗證
有誰知道任何示例或有任何代碼示例可以指向我在正確的方向嗎?
我正在Rails 3中構建一個應用程序,使用twilio來驗證商家存在。基本上,當您創建一個新的商務時,我隨機生成一個6位數的號碼,然後用此驗證碼調用業務電話號碼,用戶需要將其輸入系統以完成註冊過程。我無法找到任何相關示例來說明如何實現這一設置。我發現this,但它看起來非常過時,並且看起來並不適用於Rails 3。 twilio-rb gem的文檔也很混亂。Rails 3和Twilio做電話驗證
有誰知道任何示例或有任何代碼示例可以指向我在正確的方向嗎?
正如我在你的問題本身的評論中所說的,我是你提到的twilio-rb gem的作者。除了我的頭頂,我會實現一個驗證資源,您可以發佈一個電話號碼。
POST /verifications.voice { telephone_number: '+12125551234' }
在創建操作使用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
你也想拯救任何API的錯誤,twilio-RB可能提高。 url指的是驗證資源實例的show操作。 Twilio然後將撥打提供的電話號碼,並且當呼叫連接時將請求URL,例如, GET /verifications/1.voice
所以你需要一個要求驗證碼,並收集數字表演鑑於<Gather>
verb:
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分鐘的思想驗證代碼,但它應該讓你開始。
您是否考慮過使用Twilio的撥出呼叫者ID來幫助解決此問題?
當您通過REST調用Twilio爲您的賬戶添加一個新的呼叫者ID時,Twilio將返回一個6位數的驗證碼(屬性ValidationCode)供您在UI中顯示,然後Twilio會自動呼叫該號碼並提示代碼。當用戶通過電話驗證號碼時,他們的號碼將被添加到您帳戶的主叫ID中。然後,您可以通過REST(參數PhoneNumber)查詢Twilio的電話號碼以確保驗證成功。
看到這裏的文檔:
添加呼叫方ID:http://www.twilio.com/docs/api/rest/outgoing-caller-ids#list-post
查找來電顯示:http://www.twilio.com/docs/api/rest/outgoing-caller-ids#list
這不是解決OP的問題。 – jdc 2011-04-20 22:25:31
當你想驗證業務:
寫控制器處理呼叫,並處理驗證:
希望這是足夠的信息來指引您在正確的方向。
您能否澄清一下,如果您是在整個應用程序之後還是需要幫助的某個過程的特定部分,例如Twiml讀取DTMF,如何使用Rails進行調用,或者控制器可能看起來如何像Twilio電話迴應,或...? – 2011-04-20 15:38:45
我是twilio-rb寶石的作者。如果您有任何問題,您可以將我加入Skype。我也很感激你對我如何改進文檔/自述文件的任何反饋! skype id:sjtg85 – 2011-04-20 16:16:41