【发布时间】:2012-02-15 06:44:39
【问题描述】:
我正在使用 OmniAuth、OmniAuth-salesforce 和这个 gem 开发一个 Rails 应用程序:https://github.com/heroku/databasedotcom
我将“client_id”和“client_secret”硬编码到我的应用程序中。然后,对于通过 Saleforce 进行身份验证的每个用户,我将捕获他们的 oauth 令牌、用户 ID 和实例 url。有了这一切,我正在代表他们创建潜在客户。
如果用户来自我获得“client_id”和“client_secret”的同一个帐户,则一切正常。但是,如果我与来自另一个 Salesforce 实例的用户进行身份验证,我会收到“无效的交叉引用 id”错误。
我希望我的应用程序为来自许多不同 Salesforce 实例的用户提交潜在客户。这不可能吗?
这是我的完整代码:
client = Databasedotcom::Client.new :client_id => SALESFORCE_CLIENT_ID, :client_secret => SALESFORCE_CLIENT_SECRET
client.authenticate :token => user.salesforce_token, :instance_url => user.salesforce_instance_url
client.materialize("Lead")
lead = Lead.new(:FirstName => first_name, :LastName => last_name, :Email => email,
:Phone => phone, :OwnerId => user.salesforce_id, :IsConverted => false,
:IsUnreadByOwner => true, :Company => contact_company)
lead.save
感谢您的建议!
【问题讨论】:
-
您要访问的 URL 是什么?
-
@Matt,我面临着完全相同的问题,你能告诉我你是如何解决这个问题的吗?我正在使用 oauth2 gem 获取令牌,然后使用您编写的相同程序
-
@LaceySnr 我面临同样的问题,我正在点击login.salesforce.com/services/oauth2/authorize进行身份验证
标签: ruby-on-rails salesforce omniauth databasedotcom-gem