我正在尝试在我的应用中实施 电话号码验证 ,我决定在转储twilio-ruby后使用prove-ruby。
我在 twilio.com 上创建了一个帐户,验证了我的手机号码( India )以接收短信,电话号码(Twilio提供的 美国 号码)发送短信并在我的应用中正确设置twilio。以下是我的代码
#config/initializers/twilio.rb
path = File.join(Rails.root, "config/twilio.yml")
TWILIO_CONFIG = YAML.load(File.read(path))[Rails.env] || {'sid' => '', 'from' => '', 'token' => ''}
#users_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
render text: "Thank you! You will receive an SMS shortly with verification instructions."
# Instantiate a Twilio client
client = Twilio::REST::Client.new(TWILIO_CONFIG['sid'], TWILIO_CONFIG['token'])
# Create and send an SMS message
client.messages.create(
from: TWILIO_CONFIG['from'],
to: @user.phone,
body: "Thanks for signing up. To verify your account, please reply HELLO to this message."
)
else
render :new
end
end
private
def user_params
params.require(:user).permit(:name, :email, :phone)
end
end
#new.html.erb
<h1>User Registration</h1>
<%= form_for @user do |f| %>
<% if @user.errors.any? %>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
<p><%= f.label :name %><br>
<%= f.text_field :name%></p>
<p><%= f.label :email %><br>
<%= f.text_field :email%></p>
<p><%= f.label :phone %><br>
<%= f.text_field :phone%></p>
<%= f.submit %>
<% end %>
问题是我无法在手机上收到短信。以下是 twilio帐户 上 日志 的屏幕截图。
根据this帖子(见评论),似乎所有Twilio SMS在印度都被标记为 PROMOTIONAL 类别(目前)。因此,如果已经在Indian Govt维护的 不要呼叫 注册表中注册,那么他/她将不会收到任何促销短信。
当我在长时间的手机号码上激活 DND(请勿打扰) 时会有意义,这会阻止任何促销短信进入我的手机。
如果是这种情况,我还尝试了另一个手机号码( 没有激活DND ),验证了它,但我也没有收到任何消息
我做错了什么?
答案 0 :(得分:2)
Twilio开发者传道者在这里。
看起来您的时间戳是印度当地时间晚上9点之前。也许确认DND注册表?如果该资源不能证明有用,我会联系Twilio支持团队https://www.twilio.com/user/account/support/ticket/create。