1

RubyonRailsアプリからSalesforce.comにアクセスできるように設定された簡単なデモアプリがあります。私のコードは非常に単純です:

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):app / controllers / users_controller.rb:60:in `oauth_callback '

エラーの原因となっている行は次のとおりです。

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

私が取得しているトークンが無効か何かのように。

Salesforceのパスワードを変更するまでは問題なく機能しました(パスワードを変更する必要がありました)。私は何が欠けていますか?助けてくれてありがとう。

4

1 に答える 1

0

受け取った応答がリフレッシュ トークンが有効でなくなったというものである場合は、OAuth プロセスを最初からやり直して、新しいリフレッシュ トークンを取得する必要があります。これまでと同様に、その後のアプリの使用で新しいセッション トークンを取得するために使用できます。

基本的に、アプリを初めて起動するときと同じようにプロセスを開始します。

于 2013-03-01T06:21:24.840 に答える