2012-08-26 8 views
0

나는 rapidy_c2dm을 설정하여 안드로이드 장치에 "푸시"메시지를 보냅니다. speedy_c2dm : NoMethodError (정의되지 않은 메소드 'gsub'for nil : NilClass)

주옥

가 잘 작동했지만, 내가

SpeedyC2DM::API.send_notification(options) 

옵션 매개 변수가 좋은를 호출 할 때 지금은이 NoMethodError 메시지가, 나는 이것을 확인했습니다. ruby-doc에서 나는 보석에서 다음 코드를 가지고 :

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를 사용하고 있음을 알 수 있습니다, 그래서 문제가 인증 방법에 믿습니다.

C2DM_API_EMAIL = "[email protected]" 
C2DM_API_PASSWORD = "mynewpassword" 

SpeedyC2DM::API.set_account(C2DM_API_EMAIL, C2DM_API_PASSWORD) 

이 될 수있는 오류의 원인 :이, 내가 암호, 초기화/speedy_c2dm.rb으로 파일을 업데이트 만든 이후

나는 계정의 암호를 변경? 이 파일을 업데이트했지만 암호를 변경 했습니까? (Google에서 이전 암호로 돌아 가게하지 않습니다. 다시 암호를 변경하면 이전 암호와 다른 새 암호를 만들어야합니다.) 암호를 수정하지 않았으므로 생각할 수있는 유일한 것입니다. 보석 코드. 어떻게 해결할 수 있습니까? C2DM은 현재 사용되지 않지만 이전 사용자를 위해 계속 작동해야합니다. 내가 필요하지 않다면 GCM으로 마이그레이션하고 싶지 않다. C2DM과 함께 작동하도록 모든 것이 설정되어있다.

다른 문제를 수정하는 것은 환영 할만한 일이다.

답변

0

내 이메일에 로그인하기 위해 "two step verification"을 삭제하면 문제가 해결되었습니다.

이 변경 사항은 Gmail의 계정 구성에서 변경할 수 있습니다.

관련 문제