Twilioサービスは、便利で安価なため、SMSゲートウェイとして選択されました。 このビジネスに数時間費やした後、私にとって非常に便利な宝石であることが判明しました。
それをインストールするには、gemfileに追加する必要があります。
gem "twilio_phone_verification"
次に、コマンドを実行します。
bundle install
そして
rails g twilio_phone_verification:install [USER_CLASS]
USER_CLASSは、電話チェックを追加するクラスです。 注:テキストメッセージ "Hello、{{name}} ..."を送信できるように、このクラスには名前フィールドが必要です 。 これにより、2つのファイルが作成されます。
config / initializers / twilio_phone_verification.rb設定ファイル。Twilioからキーと電話番号を入力する必要があります
TwilioPhoneVerification.configure do |config| config.account_sid = ENV.fetch("TWILIO_ACCOUNT_SID") # Paste account id here config.auth_token = ENV.fetch("TWILIO_AUTH_TOKEN") # Paste your twilio auth token here config.from = ENV.fetch("TWILIO_NUMBER") # Paste your twilio number here end
およびdb / migrate / 000000000000000_add_phone_to_users.rb移行により、必要なフィールドが作成されます。
class AddPhoneToUsers < ActiveRecord::Migration[5.0] def self.up add_column :users, :phone, :string add_column :users, :phone_confirmation_token, :string add_column :users, :phone_confirmed_at, :datetime add_column :users, :phone_confirmation_sent_at, :datetime add_index :users, :phone, unique: true end def self.down remove_column :users, :phone remove_column :users, :phone_confirmation_token remove_column :users, :phone_confirmed_at remove_column :users, :phone_confirmation_sent_at end end
次に、コマンドを実行します。
rails db:migrate # rails 5 rake db:migrate # rails < 5
そして、必要なメソッドが追加されるようにモデルにコンサーンを追加します。
class User < ActiveRecord::Base include TwilioPhoneVerification::Phonable end
これにより、4つの主なメソッドが追加されます。phone_confirmed? 電話が確認されたかどうかに応じて、 trueまたはfalseを返します 。
send_phone_confirmationはコードを生成し、 テキストメッセージを送信します 。 SMSが送信された場合は{success:true}を返し、送信されなかった場合はfalseを返します。 新しいSMSが生成されるたび。 また、コードは1分間に1回しか送信できません。
confirm_phone_by_code(code)はtrueを返し、コードが正しい場合は電話番号を検証し、そうでない場合はfalseを検証します 。
confirm_phoneは、コードを確認せずに電話番号を検証します。
メソッドがfalseを返す場合、エラーは.errorsに追加されます 。
2つのタイムスタンプもあります。
電話が確認されたときのphone_confirmed_at
最後のSMSが送信されたときのphone_confirmation_sent_at
Githubリポジトリ
以上です。 ご清聴ありがとうございました。