1

更新: 提案してくださった皆様に感謝します。私はすべてを試しましたが、資格情報 (API、トークン、および電話番号) を本番用の資格情報に更新するまで何も機能しませんでした。そして、テキスト メッセージはトライアル アカウントから送信されたと紛らわしく表示されますが、テキスト メッセージを受信できるようになりました。アプリが機能していることをうれしく思いますが、テスト用の資格情報が機能しないのに、なぜ本番用の資格情報が機能するのかについて当惑しています。誰かがアイデアを持っているなら、私に知らせてください。

RoR を使用して、Twilio API を使用してテキスト メッセージを電話番号に送信する Web アプリを作成しています。私は自分が何をしているのかわからないので、ここの指示に従っています: https://www.sitepoint.com/adding-sms-capabilities-to-your-rails-app/ とても素晴らしいですが、こちらも4年前の書き込み。Twilio が別のリソース URI (メッセージと SMS/メッセージ) を使用していることに気付き、この更新を反映するようにコードを調整しようとしましたが、テキスト メッセージをまったく受信していないため、まだ何かが足りないと思います。 . はい、私が使用している電話番号は 100% 検証済みです。さらに困ったことに、コンソールも Twilio SMS ログもエラー メッセージを表示しません。コンソール出力は次のようになります。

(42.6ms) commit transaction レンダリングされたテキスト テンプレート (0.0ms) 710ms で 200 OK を完了 (Views: 0.4ms | ActiveRecord: 42.9ms)

私にはかなり冷たく見えます。そして、ログにエントリさえありません。私のコントローラーは次のようになります。

class UsersController < ApplicationController

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    if @user.save
      render text: "Thank you! You will receive an SMS shortly with verification instructions."

      # Instantiate a Twilio client
      client = Twilio::REST::Client.new(TWILIO_CONFIG['sid'], TWILIO_CONFIG['token'])

      # Create and send an SMS message
      client.account.messages.create(
        from: TWILIO_CONFIG['from'],
        to: @user.phone,
        body: "Thanks for signing up. To verify your account, please reply HELLO to this message."
      )
    else
      render :new
    end
  end
end

具体的には、client.account.messages.create()からclient.account.sms.messages.create()に変えてみましたがだめでした。に変更してみclient.account.sms.messages.sendMessage()ましたが、メソッドが未定義であるというエラーが表示されました。

とにかくyyy、トラブルシューティングの方法についてヒントをくれる人はいますか? これは私が変更した唯一のコードなので、何か他のものを変更する必要があるのでしょうか?

前もって感謝します。:)

PS なぜend私のコードの最後にある s はとても厄介に見えるのですか? Sublime ではそのようには見えません。

4

4 に答える 4

1

次のようなことをするとどうなりますか:

#config/initializers/twilio.rb
  #move your TWILIO_CONFIG initialization here
  TwilioClient = Twilio::REST::Client.new(TWILIO_CONFIG['sid'], TWILIO_CONFIG['token'])

#models/user.rb
class User
  after_create :send_verification_message #best done with a background worker

  def send_verification_message
    TwilioClient.account.messages.create(
        from: TWILIO_CONFIG['from'],
        to: phone,
        body: "Thanks for signing up. To verify your account, please reply HELLO to this message."
        )
    end
  end
end

その後、コントローラーで定義されたものを削除できます。これで、メッセージを送信するか、返されたエラーを確認できるはずです

于 2016-06-26T21:58:16.850 に答える
1

キラ、

テスト資格情報が機能しないのはなぜですか? をご覧ください。あなたの更新について。

適切な資格情報を使用して、更新されたチュートリアルSMS notifications in Ruby and Railsを試すことをお勧めします。send_message関数は次のようになります。

def send_message(phone_number, alert_message, image_url)

  @twilio_number = ENV['TWILIO_NUMBER']
  @client = Twilio::REST::Client.new ENV['TWILIO_ACCOUNT_SID'], ENV['TWILIO_AUTH_TOKEN']

  message = @client.account.messages.create(
    :from => @twilio_number,
    :to => phone_number,
    :body => alert_message,
    # US phone numbers can make use of an image as well.
    # :media_url => image_url 
  )
  puts message.to
end

チュートリアルの完全なコードを見て、それがまったく役立つかどうか教えてください.

于 2016-06-27T18:32:19.507 に答える