Не удается подключиться к API Salesforce - PullRequest
0 голосов
/ 04 декабря 2018

Наш клиент дал нам этот API: https://xxxxx.my.salesforce.com/services/apexrest/fetchProjectDetails

Наряду с этим у меня есть следующее от имени пользователя клиента, пароля, токена безопасности, ключа потребителя и секрета потребителя.

Используя https://apitester.com/ я получаю сообщение об ошибке CORS, но я не уверен, что это проблема, так как я отправляю запрос POST.

У меня нет опыта использования Salesforce API иЯ не могу использовать API.

Буду признателен за любую помощь, чтобы указать мне правильное направление.

Спасибо.

1 Ответ

0 голосов
/ 04 декабря 2018

Вам нужно 2 вызова API, один для входа в систему

  • , чтобы получить конечный адрес сервера (поскольку балансировщик нагрузки может отправить вас куда-то еще, чтобы выполнить последующие запросы)
  • и большинствоважно получить действительный идентификатор сеанса.

А затем вы можете запустить свой фактический вызов API.

Как это должно выполняться?В качестве фоновой системной интеграции (с выделенным пользователем SF каждый раз, когда вам нужно хранить учетные данные), или вы будете показывать людям страницу входа в SF, они вводят свои собственные учетные данные (ваше приложение их не видит, просто видит последний сеансидентификатор как результат).Выберите правильный поток OAuth2 для задания ...

Если это системная интеграция Неподдерживаемый тип гранта Salesforce OAUTH2 может помочь вам начать.

В идеале в нем будет больше магии (планируйте свой код для повторного использования идентификаторов сеансов, не входите каждый раз в систему; если сеанс завершается неудачно, выполните новый вызов входа в систему. Если этот вход в систему умирает, например, из-за истечения срока действия пароля- как-то уведомить команду SF ... и бонусные баллы, если вы сделаете свой фактический код обработки независимым от метода входа в систему, так что есть надежда в конечном итоге позволить людям войти в систему со своими собственными учетными данными SF ...)

После того, как вы получилиID сеанса, который вы можете назвать своей службой (в идеале это будет instance_url из ответа + /services/apexrest/fetchProjectDetails. Вы просто передаете идентификатор сеанса в виде заголовка HTTP Authorization со значением = Bearer sessionidgoeshere.

Эта службабыл специально сделан вашим клиентом, поэтому мы не можем вам больше помочь, не увидев исходный код. Какое HTTP-действие будет (GET, POST ...), какие параметры - свяжитесь с вашим клиентом. Это самостоятельное обучение может дать вам некоторыеидея: https://trailhead.salesforce.com/en/content/learn/modules/apex_integration_services/apex_integration_webservices

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...