2012-05-11 34 views
3

私はdatabasedotcom gemを採用しようとしていますが、認証を超えることはできませんでした。ここでは(宝石をdatabasedotcomインストールした後)私がやったことです:databasedotcomで認証が失敗します

  1. レールcは(またはIRBその後、必要 'databasedotcom')
  2. クライアント= Databasedotcom :: Client.new:CLIENT_ID => 'foo' で、:client_secret => 'bar' に
  3. client.ca_file = '/Users/tjiang/missioncontrol/tmp/ca-bundle.crt'
  4. client.verify_mode = OpenSSLの:: SSL :: VERIFY_PEER
  5. client.authenticate:ユーザ名=> 'myusername'、:パスワード=> 'mypassword'

すべての資格情報はプロセスでコピーアンドペーストされるため、間違いはありません。証明書はここからダウンロードしたhttp://certifie.com/ca-bundle/ca-bundle.crt.txt

を私はRubyの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問合せ文字列にエンコードされ、そのURLでリクエストがPOSTされます。その結果、私のユーザ名のプラス記号は空白として解釈されます。

解決方法:CGI :: escape()はユーザー名とパスワードの両方を使用します。

+0

これは私の問題を解決しませんでした... – s2t2

関連する問題