我设置了 speedy_c2dm 以向 android 设备发送“推送”消息。
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)
这会导致错误吗?即使我更新了这个文件,我还是更改了密码?(谷歌不让我回到旧密码,如果我再次更改它,我必须创建一个与旧密码不同的新密码)这是我唯一能想到的,因为我没有修改 gem 的代码. 我该如何解决?C2DM现在已被弃用,但它应该继续为老用户工作。如果不需要,我不想迁移到GCM,一切都设置为与 C2DM 一起使用
欢迎任何其他解决它的想法。