2012-05-11 3 views
3

Я пытаюсь принять databasedotcom gem, но не смог выйти за рамки аутентификации. Вот что я сделал (после установки databasedotcom камень):Ошибка аутентификации в databasedotcom

  1. рельсы с (или 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, а также внутри и снаружи Rails, неоднократно, но всегда получал сообщение об ошибке:

Databasedotcom :: SalesForceError: Ошибка аутентификации из/Library/рубин /Gems/1.8/gems/databasedotcom-1.3.0/lib/databasedotcom/client.rb:112:in `authenticate '

Интересно, что я пропустил здесь? В частности, меня беспокоит URL-адрес обратного вызова, который я использовал при создании удаленного доступа в Salesforce (я пробовал «oob», «http: // localhost: 3000» и «https://www.salesforce.com», но ни один имело какое-либо значение).

ответ

5

Получается, что это связано с ошибкой в ​​databasedotcom. Когда вы используете имя пользователя и пароль для аутентификации, он помещает их в строку запроса url БЕЗ кодирования и POST-запрос с этим URL-адресом. В результате знак плюса в моем имени пользователя будет интерпретироваться как пустое пространство.

Решение: CGI :: escape() и ваше имя пользователя и пароль.

+0

это не решило проблему для меня ... – s2t2

Смежные вопросы