【发布时间】:2015-02-19 23:59:17
【问题描述】:
我是 Rails 新手,这是我第一次在我的应用中实现 API。我正在创建一个允许用户使用 twilio 安排短信 (SMS) 的应用程序。我正在尝试传入“数字”,以便用户可以输入数字。当我硬编码一个号码时,我已经让应用程序工作了,但我得到“需要一个‘收件人’电话号码。”当我试图传递一个论点时。
这是控制器
class TextMessagesController < ApplicationController
def index
@message = TextMessage.all
end
def new
@message = TextMessage.new
end
def create
@active = 'messages'
@message = TextMessage.send_sms(params[:number], params[:message])
if @message.save
flash[:success] = "Text Message Sent."
redirect_to message_path
else
render 'home'
end
end
def text_message_params
params.require(:text_messages).permit(:number, :message)
end
end
这是模型
class TextMessage < ActiveRecord::Base
belongs_to :user
validates :message, length: { maximum: 160 }, presence: true
def self.send_sms(number, message)
twilio_account_sid = 'XXXXXX'
twilio_auth_token = 'XXXXXX'
twilio_number = 'XXXXXX'
@client = Twilio::REST::Client.new twilio_account_sid, twilio_auth_token
message = @client.account.sms.messages.create(
:from => "+1#{twilio_number}",
:to => "#{number}",
:body => "#{message}"
)
end
结束
有人知道我在哪里犯错了吗?
【问题讨论】:
-
我看到最后一个代码块之后的结尾是最后一个代码块的一部分吗?
-
你能在发送短信前打印
number吗? -
只是一个旁注,但 Twilio 允许长度最大为 1600 字节的消息 - 将作为串联的 SMS 发送,并将组装在用户的手机上!至于您的代码,我不完全确定问题出在哪里-您是否尝试过直接从控制器发送短信?这并不重要,但它删除了一个可能妨碍的额外层......
标签: ruby-on-rails sms twilio