【问题标题】:How do I send two SMS messages in a chain to the same receiver with twilio?如何使用 twilio 将两条 SMS 消息链式发送到同一个接收器?
【发布时间】:2014-10-30 20:43:09
【问题描述】:

我正在开发一个项目,该项目将 SMS 消息返回给刚刚向服务器发送 SMS 消息的用户。

流程是:

  • 用户向服务器发送 SMS 消息。
  • 服务器将向该用户发送两条 SMS 消息。请注意,这是两条独立的短消息,几乎会同时发送。

我已经让发送部分正常工作,但只是用于发送一条 SMS 消息,而不是两条。当我添加更多代码来发送另一条消息时,只有第二条消息部分起作用,这意味着只发送了第二条消息,第一条消息被忽略了。

代码看起来很像:

  else
sms = SMS.create(:body => params['Body'], :from => params['From'], :to => params['To'], :created_at => Time.now)

  #return a random saved sms
    return_secret = SMS.first(:offset => rand(SMS.count))
    twiml = Twilio::TwiML::Response.new do |r|
        r.Sms return_secret.body
  #send another message to remind user for rating
    ask_rating = remind_rating
   if ask_rating 
    twiml = Twilio::TwiML::Response.new do |r|
      r.Sms ask_rating
    end
    twiml.text
   end    

有谁知道如何在 Twilio 中发送两条消息?

【问题讨论】:

  • 一个小问题。 "SMS" = "Short Message Service" 这是一个用于发送消息的“服务”。所以,说你发送“短信”是没有意义的。您正在发送“SMS 消息”,或者更简单地说,是“消息”。
  • 哦,谢谢你修改铁皮人!!

标签: ruby sms twilio


【解决方案1】:

twiml 有一些变量阴影。正如您编写的那样,第二条消息的代码位于第一条消息的块内。但是,您引用的变量与块外的变量同名。我会尝试扁平化你的代码,这样你就不会那样嵌套了。

【讨论】:

    【解决方案2】:

    认为这里的问题是当你已经有一个 TwiML::Response 对象时,你正在实例化第二个对象,所以你可以只引用你分配给 r 的前一个对象第一个块。您还在第二个块中将其称为 r,因此您只需删除包含它的块:

    sms = SMS.create(:body => params['Body'], :from => params['From'], :to => params['To'], :created_at => Time.now)
    
    #return a random saved sms
    return_secret = SMS.first(:offset => rand(SMS.count))
    twiml = Twilio::TwiML::Response.new do |r|
      r.Sms return_secret.body
      #send another message to remind user for rating
      ask_rating = remind_rating
      if ask_rating 
        r.Sms ask_rating
      end
    end
    

    此外,初始代码 sn-p 中的块不平衡,因此我删除了 else 以使其在语法上准确。

    【讨论】:

      【解决方案3】:

      谢谢大家,非常感谢您的回复。 在咨询了 twilio 团队之后,他们给了我一个这样的例子:

      require 'rubygems' 
      require 'twilio-ruby' 
      require 'sinatra' 
      
      get '/sms-quickstart' do 
      twiml = Twilio::TwiML::Response.new do |r| 
      r.Message "Hey Monkey. Thanks for the message!" 
      r.Message "this is the 2nd message" 
      end 
      twiml.text 
      end
      

      我刚刚删除了

      if ask_rating 
      twiml = Twilio::TwiML::Response.new do |r|
      

      一切正常...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-13
        • 1970-01-01
        • 1970-01-01
        • 2022-07-06
        • 1970-01-01
        相关资源
        最近更新 更多