TwiML导出到Sinatra,但不实际发送SMS消息(TwiML Exporting to Sinatra, but not actually sending SMS Messages)

编程入门 行业动态 更新时间:2024-10-26 06:35:53
TwiML导出到Sinatra,但不实际发送SMS消息(TwiML Exporting to Sinatra, but not actually sending SMS Messages)

通过TwiML消息功能,我遇到了出站SMS问题。 我可以在我的Sinatra服务器会话中看到我的帖子:

== Sinatra (v2.0.0) has taken the stage on 4567 for development with backup from WEBrick [2018-01-24 15:30:55] INFO WEBrick::HTTPServer#start: pid=67403 port=4567 <?xml version="1.0" encoding="UTF-8"?><Response><Message to="+1904XXXXXXX"><Body>Text Message Test for Devotional App. Please reply.</Body></Message><Message to="+1786XXXXXXX"><Body>Text Message Test for Devotional App. Please reply.</Body></Message><Message to="+1904XXXXXXX"><Body>Text Message Test for Devotional App. Please reply.</Body></Message></Response> 50.235.219.155 - - [24/Jan/2018:15:31:16 -0500] "POST /message HTTP/1.1" 200 - 0.0022 ::1 - - [24/Jan/2018:15:31:16 EST] "POST /message HTTP/1.1" 200 0 - -> /message

我在这里看到入站日志 ,但没有出站。 我甚至将此提升为付费帐户,以确保它不是一件小事。

此代码基于此walkthru 。

我的应用程序的完整Ruby代码在这里:

require 'yaml' require 'open-uri' require 'sinatra' require 'twilio-ruby' MY_NUMBER = '+1904XXXXXXXX' def spreadsheet_url 'contacts.yml' end def sanitize(number) "+1" + number.gsub(/^1|\D/, "") end def data_from_spreadsheet file = open(spreadsheet_url).read YAML.load(file) end def contacts_from_spreadsheet contacts = {} data_from_spreadsheet.each do |entry| name = entry['name'] number = entry['phone_number'].to_s contacts[sanitize(number)] = name end contacts end def contacts_numbers contacts_from_spreadsheet.keys end def contact_name(number) contacts_from_spreadsheet[number] end get '/' do "Devotional Broadcast is Up & Running!" end get '/message' do "Things are Working!" end post '/message' do from = params['From'] body = params['Body'] media_url = params['MediaUrl0'] if from == MY_NUMBER twiml = send_to_contacts(body, media_url) else twiml = send_to_me(from, body, media_url) end content_type 'text/xml' puts twiml end def send_to_contacts(body, media_url = nil) response = Twilio::TwiML::MessagingResponse.new do |r| contacts_numbers.each do |num| r.message to: num do |msg| msg.body body msg.media media_url unless media_url.nil? end end end puts response end def send_to_me(from, body, media_url = nil) name = contact_name(from) body = "#{name} (#{from}):\n#{body}" response = Twilio::TwiML::MessagingResponse.new do |r| r.message to: MY_NUMBER do |msg| msg.body body msg.media media_url unless media_url.nil? end end puts response end

任何帮助或见解都会很棒! 谢谢!

I am having an issue with outbound SMS thru TwiML Message functions. I am able to see my post on my Sinatra server session here:

== Sinatra (v2.0.0) has taken the stage on 4567 for development with backup from WEBrick [2018-01-24 15:30:55] INFO WEBrick::HTTPServer#start: pid=67403 port=4567 <?xml version="1.0" encoding="UTF-8"?><Response><Message to="+1904XXXXXXX"><Body>Text Message Test for Devotional App. Please reply.</Body></Message><Message to="+1786XXXXXXX"><Body>Text Message Test for Devotional App. Please reply.</Body></Message><Message to="+1904XXXXXXX"><Body>Text Message Test for Devotional App. Please reply.</Body></Message></Response> 50.235.219.155 - - [24/Jan/2018:15:31:16 -0500] "POST /message HTTP/1.1" 200 - 0.0022 ::1 - - [24/Jan/2018:15:31:16 EST] "POST /message HTTP/1.1" 200 0 - -> /message

I see the inbound logs here, but nothing outbound. I have even elevated this to a paid account to make sure it wasn't a trail thing.

This code is based on this walkthru.

My full ruby code for the app is here:

require 'yaml' require 'open-uri' require 'sinatra' require 'twilio-ruby' MY_NUMBER = '+1904XXXXXXXX' def spreadsheet_url 'contacts.yml' end def sanitize(number) "+1" + number.gsub(/^1|\D/, "") end def data_from_spreadsheet file = open(spreadsheet_url).read YAML.load(file) end def contacts_from_spreadsheet contacts = {} data_from_spreadsheet.each do |entry| name = entry['name'] number = entry['phone_number'].to_s contacts[sanitize(number)] = name end contacts end def contacts_numbers contacts_from_spreadsheet.keys end def contact_name(number) contacts_from_spreadsheet[number] end get '/' do "Devotional Broadcast is Up & Running!" end get '/message' do "Things are Working!" end post '/message' do from = params['From'] body = params['Body'] media_url = params['MediaUrl0'] if from == MY_NUMBER twiml = send_to_contacts(body, media_url) else twiml = send_to_me(from, body, media_url) end content_type 'text/xml' puts twiml end def send_to_contacts(body, media_url = nil) response = Twilio::TwiML::MessagingResponse.new do |r| contacts_numbers.each do |num| r.message to: num do |msg| msg.body body msg.media media_url unless media_url.nil? end end end puts response end def send_to_me(from, body, media_url = nil) name = contact_name(from) body = "#{name} (#{from}):\n#{body}" response = Twilio::TwiML::MessagingResponse.new do |r| r.message to: MY_NUMBER do |msg| msg.body body msg.media media_url unless media_url.nil? end end puts response end

Any help or insight would be great! Thanks!

最满意答案

我想我明白了。 这里翻译了.to_s文档示例: 接收并回复短信和彩信

post '/message' do from = params['From'] body = params['Body'] media_url = params['MediaUrl0'] if from == MY_NUMBER twiml = send_to_contacts(body, media_url) else twiml = send_to_me(from, body, media_url) end content_type 'text/xml' twiml.to_s end def send_to_contacts(body, media_url = nil) response = Twilio::TwiML::MessagingResponse.new do |r| contacts_numbers.each do |num| r.message to: num do |msg| msg.body body msg.media media_url unless media_url.nil? end end end response.to_s end def send_to_me(from, body, media_url = nil) name = contact_name(from) body = "#{name} (#{from}):\n#{body}" response = Twilio::TwiML::MessagingResponse.new do |r| r.message to: MY_NUMBER do |msg| msg.body body msg.media media_url unless media_url.nil? end end response.to_s end

I think I got it. Swapped out puts for .to_s Documentation Example here: Receive & Reply to SMS & MMS

post '/message' do from = params['From'] body = params['Body'] media_url = params['MediaUrl0'] if from == MY_NUMBER twiml = send_to_contacts(body, media_url) else twiml = send_to_me(from, body, media_url) end content_type 'text/xml' twiml.to_s end def send_to_contacts(body, media_url = nil) response = Twilio::TwiML::MessagingResponse.new do |r| contacts_numbers.each do |num| r.message to: num do |msg| msg.body body msg.media media_url unless media_url.nil? end end end response.to_s end def send_to_me(from, body, media_url = nil) name = contact_name(from) body = "#{name} (#{from}):\n#{body}" response = Twilio::TwiML::MessagingResponse.new do |r| r.message to: MY_NUMBER do |msg| msg.body body msg.media media_url unless media_url.nil? end end response.to_s end

更多推荐

本文发布于:2023-08-03 15:34:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1393624.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:但不   消息   导出到   Sinatra   TwiML

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!