Salesforce错误 – “无效的交叉引用ID”

我正在使用OmniAuth,OmniAuth-salesforce和这个gem开发一个Rails应用程序: https : //github.com/heroku/databasedotcom

我正在将“client_id”和“client_secret”硬编码到我的应用程序中。 然后,对于使用Saleforce进行身份validation的每个用户,我正在捕获他们的oauth令牌,用户ID和实例url。 有了这一切,我就代表他们创造了潜在客户。

如果用户来自我获得“client_id”和“client_secret”的同一帐户,则一切正常。 但是,如果我从另一个Salesforce实例的用户进行身份validation,则会收到“无效的交叉引用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 

谢谢你的建议!

该错误将来自您为ownerId设置的user.salesforce_id引用,并让我认为您以某种方式混合数据,即您发送user1但是发送到user2的会话。 我没有使用你提到的gem,但是从代码中,我看不出lead实例如何与特定的客户端实例相关联。 lead.save如何知道您刚刚创建的客户端实例?

更多地了解物化(“引导”)是如何工作的,看起来Lead.new总是会创建一个与您创建的第一个客户端实例相关联的潜在客户,因此您将尝试向第一个用户发送所有潜在客户你validation。

Interesting Posts