Вам нужно 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