我正在使用 Rails 3.2.8 并考虑使用 neximo。neximo gem 似乎没有提供接收 SMS 消息的方法。如何接收短信?我是否创建了一个控制器来响应 GET?我对 Rails 比较陌生,正在寻找有关采用方法的指针。
- 如何设置我的路线
- 我假设我收到消息后不需要渲染任何东西,所以我不需要模板,所以我是否绕过渲染?
任何指针或帮助将不胜感激。
我正在使用 Rails 3.2.8 并考虑使用 neximo。neximo gem 似乎没有提供接收 SMS 消息的方法。如何接收短信?我是否创建了一个控制器来响应 GET?我对 Rails 比较陌生,正在寻找有关采用方法的指针。
任何指针或帮助将不胜感激。
好吧,看起来您想使用为 Nexmo 构建的 Ruby 库。
基本上你要做的是把这个示例代码:
nexmo = Nexmo::Client.new('...API KEY...', '...API SECRET...')
response = nexmo.send_message({
from: 'RUBY',
to: '...NUMBER...',
text: 'Hello world'
})
if response.success?
puts "Sent message: #{response.message_id}"
elsif response.failure?
raise response.error
end
..在你的控制器中的一个动作中。假设它是你的TextsController
,你把它放在create
行动之下。因此,在您的 中,输入config/routes.rb
如下内容:
match "/sendtext" => "texts#create"
然后,您只需点击mydomain.com/sendtext
,命令就会触发。
想通了,很简单。首先,生成控制器,假设你调用控制器'foo'
rails generate controller foo
在 foo_controller.rb 添加以下内容:
class SmsesController < ApplicationController
def getmessage
text_from_phone_no = params[:msisdn]
text_body = params[:text]
# here you can extract more values from parameters as described in nexmo docs.
render :nothing => true # this will supply the needed http 200 OK
end
end
在 routes.rb 添加以下内容:
得到“foo/getessage”
然后在 Nexmo 中,将接收消息的 URL 指定为:
your-domain.com/foo/getmessage.com
那就是你完成了。
我不确定 Ruby 库中是否有某种帮助程序来解码响应,但传入的消息只是一个 HTTP GET 或 POST 到您为数字配置的任何 URL(在 Nexmo 仪表板中)。
这是传入消息的文档。
(免责声明:我为 Nexmo 做一些开发人员宣传。)