2012-05-11 10 views
3

databasedotcom gem을 채택하려고하지만 인증을 초과 할 수 없습니다. 여기에 (보석을 databasedotcom 설치 한 후) 내가 무슨 짓을 :databasedotcom에서 인증이 실패합니다.

  1. 레일 (C)가 (또는 IRB 다음 필요 'databasedotcom')
  2. 클라이언트 = Databasedotcom :: Client.new : CLIENT_ID => 'foo는': client_secret => '바'
  3. client.ca_file = '/Users/tjiang/missioncontrol/tmp/ca-bundle.crt'
  4. client.verify_mode =에는 OpenSSL : SSL ::위한 verify_peer
  5. client.authenticate : 사용자 이름 => 'myusername', : password => 'mypassword'

모든 자격 증명이 프로세스에 복사하여 붙여 넣어 지므로 실수하지 마십시오. 인증서는 여기에서 다운로드되었습니다 http://certifie.com/ca-bundle/ca-bundle.crt.txt

내가 루비 187과 193뿐만 아니라 내부와 외부 레일, 반복하지만 항상했기 때문에이 오류 메시지가 시도 :

Databasedotcom :: SalesForceError :에서 인증 실패/라이브러리/루비 /Gems/1.8/gems/databasedotcom-1.3.0/lib/databasedotcom/client.rb:112:in`authenticate '

내가 여기에서 놓친 것이 궁금합니까? 특히 Salesforce에서 원격 액세스를 만들 때 사용한 콜백 URL ('oob', 'http : // localhost : 3000'및 'https://www.salesforce.com'은 시도했지만 아무 것도 사용하지 않았습니다. 차이를 만들었습니다.)

답변

5

이것은 databasedotcom의 버그로 인한 것입니다. 사용자 이름과 암호를 사용하여 인증하면 인코딩없이 url 쿼리 문자열에 넣고 url로 요청을 POST합니다. 결과적으로 내 사용자 이름의 더하기 기호는 공백으로 해석됩니다.

해결책 : CGI :: 이스케이프() 사용자 이름과 암호를 모두.

+0

문제가 해결되지 않았습니다. – s2t2

관련 문제