3

我正在构建一个 Rails 应用程序(基于印度以外),我需要在其中向已确认预订的用户发送短信。为此,我在 Twilio 上使用了试用帐户。但是,当我尝试发送短信时,状态始终显示为“待处理”,并且我没有收到发往所需目的地号码的短信。可能是什么原因?

我使用以下代码创建了一个 notification_controller:

class NotificationController < ApplicationController

  skip_before_action :verify_authenticity_token

  def notify
    client = Twilio::REST::Client.new 'my_account_SID', 'my_account_Token'
    message = client.account.messages.create from: 'twilio_number_assigned', to: 'my_number', body: 'Learning to send SMS you are.'
    render plain: message.status
  end

end

并向 /notifications/notify 发出 POST 请求。

更新:

如果您的 Rails 应用程序有另一个批量短信提供商服务,请随时分享相关文档。谢谢!

4

1 回答 1

2

尝试将其作为哈希发送,这就是 Twilio 的建议,也是我在应用程序中使用它的方式:

client = Twilio::REST::Client.new account_sid, auth_token 
client.account.messages.create({
    :from => 'twilio_number_assigned', 
    :to => 'my_number', 
    :body => 'Learning to send SMS you are.',  
})

您还可以测试消息发送请求:

https://www.twilio.com/user/account/developer-tools/api-explorer/message-create

您将填写必填字段,然后您将在请求代码示例下方看到您应该在应用中使用的代码示例。

关于消息的状态

您在控制器中所做的是在传递时返回消息的当前状态,通常这将是pending. 您需要设置一个回调,Twilio 将使用该回调在消息发送时通知您。

https://www.twilio.com/docs/api/rest/sending-sms

状态回调

处理您的消息时 Twilio 将发布到的 URL。Twilio 将发布 SmsSid 以及 SmsStatus=sent 或 SmsStatus=failed。

向印度号码发送消息

https://www.twilio.com/help/faq/sms/are-there-limitations-on-sending-sms-messages-to-indian-mobile-devices

  1. 它们不能发送到印度“请勿来电登记”中的任何电话号码

如果您在向印度号码发送 SMS 消息时遇到问题,请查看该号码是否已在National Do Not Call Registry上注册。

如果电话号码的所有者希望开始接收来自 Twilio 的 SMS 消息,他们可以按照此处的说明更新 DNC 设置。

请注意,上述限制是印度政府制定的规定。

于 2014-12-16T10:03:52.673 回答