4

我正在使用 Rails 3.2.8 并考虑使用 neximo。neximo gem 似乎没有提供接收 SMS 消息的方法。如何接收短信?我是否创建了一个控制器来响应 GET?我对 Rails 比较陌生,正在寻找有关采用方法的指针。

  1. 如何设置我的路线
  2. 我假设我收到消息后不需要渲染任何东西,所以我不需要模板,所以我是否绕过渲染?

任何指针或帮助将不胜感激。

4

3 回答 3

3

好吧,看起来您想使用为 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,命令就会触发。

于 2012-10-05T15:14:09.713 回答
2

想通了,很简单。首先,生成控制器,假设你调用控制器'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

那就是你完成了。

于 2012-10-08T12:20:19.153 回答
1

我不确定 Ruby 库中是否有某种帮助程序来解码响应,但传入的消息只是一个 HTTP GET 或 POST 到您为数字配置的任何 URL(在 Nexmo 仪表板中)。

这是传入消息的文档

免责声明:我为 Nexmo 做一些开发人员宣传。

于 2012-10-05T16:17:43.810 回答