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
アドバイスありがとうございます!