我的Salesforce密码已更改,现在我的Ruby on Rails应用程序已损坏

问题描述:

我有一个简单的演示应用程序,可以从Ruby on Rails应用程序访问Salesforce.com。我的代码非常简单:我的Salesforce密码已更改,现在我的Ruby on Rails应用程序已损坏

def sign_in_salesforce 
    client = OAuth2::Client.new(ENV['SALESFORCE_CONSUMER_KEY'], ENV['SALESFORCE_CONSUMER_SECRET'], :site => 'https://login.salesforce.com/', :authorize_url => 'services/oauth2/authorize', :token_url => 'services/oauth2/token') 
    auth_url = client.auth_code.authorize_url(:redirect_uri => 'https://99.44.242.76:3000/users/oauth_callback') 
    redirect_to auth_url 
end 

然后我有一个方法来照顾回调。

def oauth_callback 
    db_client = Databasedotcom::Client.new 
    db_client.authenticate(:token => params[:code]) 
    puts db_client.inspect 
    end 

在控制台的错误是: 引发ArgumentError(引发ArgumentError): 应用程序/控制器/ users_controller.rb:60:在`oauth_callback”

,导致该错误的行是:

db_client.authenticate(:token => params[:code]) 

像我得到的令牌是无效的或东西。

它工作正常,直到我改变了我的Salesforce密码(他们要求我这样做)。我错过了什么?谢谢您的帮助。

+0

它怎么不起作用? – superfell 2013-02-28 21:54:46

+0

对不起,有时候我是个白痴。这个问题现在应该更清楚了。 – jhamm 2013-02-28 22:00:16

+0

params字典中有什么? – superfell 2013-03-01 16:04:46

如果您收到的响应是您的刷新令牌不再有效,那么您需要重新从头开始重新启动OAuth进程以获取新的刷新令牌;然后您就可以像以前一样使用应用程序的后续使用中的新会话令牌。

本质上,启动该过程就像您第一次启动该应用程序时一样。

+0

我相信这就是我所做的。我启动服务器,点击应用中的链接,重定向到Salesforce,然后抛出错误。我错过了一步吗? – jhamm 2013-03-01 10:39:28

+0

听起来不像它...你是否检查过salesforce中的应用程序配置以查看是否有任何更改?我认为你将不得不粘贴一些代码或链接到你的应用程序 – 2013-03-01 23:57:20

+0

你是对的。在我的Saleforce配置中对应用进行了更改。我确信我拥有正确的KEY和SECRET,并且一切都按计划进行。感谢所有的帮助。 – jhamm 2013-03-04 10:37:21