Ошибка Salesforce - «неверный идентификатор перекрестной ссылки» - PullRequest
0 голосов
/ 20 января 2012

Я занимаюсь разработкой приложения на Rails с использованием OmniAuth, OmniAuth-salesforce и этого драгоценного камня: https://github.com/heroku/databasedotcom

Я жестко запрограммировал "client_id" и "client_secret" в моем приложении. Затем для каждого пользователя, который проходит аутентификацию с помощью Saleforce, я записываю его токен oauth, идентификатор пользователя и URL-адрес экземпляра. При всем этом я создаю интересы от их имени.

Все работает, если пользователь из той же учетной записи, где я получил "client_id" и "client_secret". Однако, если я аутентифицируюсь с пользователем из другого экземпляра Salesforce, я получаю ошибку «недопустимый идентификатор перекрестной ссылки».

Я хочу, чтобы мое приложение отправляло запросы пользователям из разных экземпляров 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

Спасибо за любой совет!

1 Ответ

0 голосов
/ 21 января 2012

Ошибка будет исходить из ссылки user.salesforce_id, которую вы устанавливаете для ownerId, и заставляет меня думать, что вы каким-то образом смешиваете данные, то есть вы отправляете user1, но в сеанс user2. Я не использовал упомянутый вами гем, но из кода я не вижу, как ведущий экземпляр связан с конкретным клиентским экземпляром. Как lead.save знает, как использовать только что созданный вами экземпляр клиента?

Более подробно о том, как материализуется ("Свинец"), кажется, что Lead.new всегда будет создавать отрывок, связанный с первым созданным вами клиентским экземпляром, поэтому вы пытаетесь отправить все отведения. первый пользователь, которого вы аутентифицируете.

...