Rails - Как отправить код подтверждения через SMS с помощью nexmo api

Мы создаем приложение Rails для реализации API Nexmo. В процессе регистрации нам необходимо отправить код подтверждения через SMS пользователю со стороны сервера, используя Nexmo API. Но мы понятия не имеем об этом. Мы хотели реализовать эту функцию только для Индии.

Я использовал https://github.com/dotpromo/nexmos gem, и мой код:

# Gemfile
gem 'nexmos'


#sms_controller.rb:

class SmsController < ApplicationController
  def new
    @sms = Sms.new
  end
  def createclient = ::Nexmos::Message.new('#', '#')
    res = client.send_text(from: '+910000000000', to: '+910000000000', text: 'Hello world!') 
    if res.success?
      puts "ok"
    else
      puts "fail"
    end
  end 
end

Я использовал свои учетные данные для "ключа" и "Секрета" вместо "#" и заменял их и на свои номера телефонов. но это не работает. Даже после того, как SMS не доставлено на другие номера, блокировка успеха выполняется.

Кто-нибудь может направить нас к реализации этого?

1 ответ

Похоже, вы захотите использовать библиотеку Ruby, созданную для Nexmo.

По сути, вы должны поместить этот пример кода:

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и вы положили его в действие создания. Так в вашем config/routes.rbпоставить что-то вроде:

match "/sendtext" => "texts#create"

Затем вы просто нажали mydomain.com/sendtext и команда должна стрелять.

через Варатис

Другие вопросы по тегам