「プッシュ」メッセージを 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 で動作するように設定されています。
それを修正するための他のアイデアは大歓迎です。