0

「プッシュ」メッセージを Android デバイスに送信するように speedy_c2dm をセットアップしました。

gem は正常に動作していましたが、呼び出し時にこの NoMethodError メッセージが表示されるようになりました

SpeedyC2DM::API.send_notification(options)

options パラメータは良好です。これは確認済みです。ruby-docから、gem から次のコードを取得しました。

def get_auth_token(email, password)
  data = "accountType=HOSTED_OR_GOOGLE&Email=#{email}&Passwd=#{password}&service=ac2dm"
  headers = { "Content-type" => "application/x-www-form-urlencoded",
              "Content-length" => "#{data.length}"}

  uri = URI.parse(AUTH_URL)
  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  response, body = http.post(uri.path, data, headers)
  return body.split("\n")[2].gsub("Auth=", "")
end

最後の行で gsub を使用していることがわかりますので、認証方法に問題があると思います。

これを作成してからアカウントのパスワードを変更しました。パスワードを使用してファイルを更新しました: initializers/speedy_c2dm.rb:

C2DM_API_EMAIL = "myemail@gmail.com"
C2DM_API_PASSWORD = "mynewpassword"

SpeedyC2DM::API.set_account(C2DM_API_EMAIL, C2DM_API_PASSWORD)

これがエラーの原因になっている可能性はありますか? このファイルを更新したのにパスワードを変更したということですか? (Google は古いパスワードに戻すことを許可していません。もう一度変更する場合は、古いパスワードとは別の新しいパスワードを作成する必要があります) gem のコードを変更していないので、それしか考えられません。 . どうすれば修正できますか?C2DMは現在非推奨ですが、古いユーザーのために引き続き機能するはずです。必要がなければGCMに移行したくありません。すべてが C2DM で動作するように設定されています。

それを修正するための他のアイデアは大歓迎です。

4

1 に答える 1

0

電子メールにログインするための「 2段階認証」を削除した後、問題は修正されました。

この変更は、Gmailのアカウント構成で行うことができます。

于 2012-09-04T17:20:37.610 に答える