[英]Rails send multiple SMS
我有一个应每5分钟向用户发送一条SMS的应用(该值稍后会更改)。
目前,我的应用正在运行,每5分钟发送一次短信,但仅发送给一位用户。 我不知道为什么其他用户会被忽略。
我正在使用Twilio。
这是我的任务:
task :sms_sender_daily => :environment do |_, args|
User.find_each do |user|
UserTexter.send_daily_sms(user).deliver_now if user.daily_sms == true && user.phone.present? (I tried with deliver_later too, same result)
end
end
这是我的UserTexter:
class UserTexter < Textris::Base
def send_daily_sms(user)
@user = user
# put your own credentials here
account_sid = 'AC25xxx'
auth_token = '059xxx'
# set up a client to talk to the Twilio REST API
@client = Twilio::REST::Client.new account_sid, auth_token
@client.account.messages.create({
:from => '+14234350632',
:to => '+' + @user.phone,
:body => 'SMS journalier',
})
end
end
我只有3个用户,其中有3个不同的号码,但只能发送给一个。
编辑:当我将send_daily_sms方法放在user.rb模型中,并对“收件人”号码进行硬编码时,它将3次SMS发送到该号码,因为3个用户的day_sms为true。 奇怪的。
Twilio开发人员布道者在这里。
我相信,根据我们在评论中的讨论,您仍在使用Twilio试用帐户。 从试用帐户发送SMS消息时,您只能发送到已验证的号码。 这包括您的号码,您在注册时会进行验证。 但是,可能不会包括其他数字。
要解决此问题,您可以通过转到帐户中的以下页面来验证要测试的其他号码: https : //www.twilio.com/user/account/phone-numbers/verified
否则,您将要升级您的帐户,然后就可以将消息发送给任何人。
您可以通过查看帐户内“监视器”中的“警报”部分,来检查尝试向未验证的号码发送消息时Twilio是否抛出错误。 您可以在此处访问它: https : //www.twilio.com/user/account/monitor/alerts
希望这可以帮助!
您直接在这里与Twilio客户端进行交互但还使用Textris进行交互,这有点奇怪。 这是我的操作方法(基于textris自述文件)。
# app/models/user.rb
class User < ActiveRecord::Base
scope :wanting_daily_sms,
-> { with_phone.where(daily_sms: true) }
scope :with_phone,
-> { where(arel_table[:phone].not_eq(nil)) }
end
# task
task :sms_sender_daily => :environment do |_, args|
User.wanting_daily_sms.each { |u| UserTexter.send_daily_sms(u).deliver_now }
end
# config/initializers/twilio.rb
Twilio.configure do |config|
config.account_sid = 'AC25xxx'
config.auth_token = '059xxx'
end
# Gemfile
gem 'twilio-ruby'
gem 'textris'
# UserTexter
class UserTexter < Textris::Base
default from: "Our Team <+14234350632>"
def send_daily_sms(user)
@user = user
text to: @user.phone
end
end
# app/views/user_texter/send_daily_sms.text.erb
SMS journalier
在上面添加了初始化程序之后,您需要确保重新启动服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.