Как создать пользовательский URL в apex, чтобы получить Json ответ от стороннего приложения - PullRequest
0 голосов
/ 01 мая 2020

Я отправляю некоторые параметры в стороннее приложение, используя rest api. В одном из параметров я отправляю URL-адрес. Этот URL-адрес будет использоваться сторонним приложением для отправки ответа json через 5 или 10 минут. У меня вопрос, как я могу создать этот URL для стороннего приложения, которое они будут использовать для отправки ответа.

1 Ответ

0 голосов
/ 01 мая 2020

Если третья сторона также может отправлять заголовки HTTP, вы можете отправить им идентификатор сеанса текущего пользователя. Если у этого пользователя включен API (флажок в профиле / наборе разрешений) - вы можете написать сервис Apex REST, который принимает POST. Они назвали бы это с Authorization: Bearer <session id here>, и это могло бы работать очень хорошо. Этот трейлхед может быть хорошим началом для вас. (или вы можете связаться с их разработчиками и, возможно, согласиться сделать для них выделенного пользователя в SF, чтобы они входили под своими учетными данными и отправляли его обратно?)

Если они не могут отправлять какие-либо специальные заголовки (это должно быть соединение без проверки подлинности с SF) - возможно, вы могли бы создать страницу Visualforce, выставить ее как сайт, и тогда контроллер страницы сможет сделать все, что вам нужно. Может быть, у вас уже есть что-то, с чем сталкивается c (сообщество?), Может быть, это было бы совершенно новым ... Проверьте https://developer.salesforce.com/docs/atlas.en-us.206.0.salesforce_platform_portal_implementation_guide.meta/salesforce_platform_portal_implementation_guide/sites_overview.htm

Если ни одно из этих действий для вас не работает - работает URL должен пинговать обратно в Salesforce. Возможно, у вас есть контроль над другим сервером, который может принимать неаутентифицированные запросы, такие как этот, и затем вызывать SF. Бит как прокси. Вы даже можете довольно легко настроить что-то на Heroku.

И последнее, но не менее важное. Это было бы крайне глупо, но если ничего не помогло - в песочнице включите Web-to-Case или Web-to-Lead и поэкспериментируйте с ними. В конце дня они дают вам URL-адрес, по которому вы можете отправить сообщение и отправить форму с данными. Я думаю, это должно быть Content-Type: application/x-www-form-urlencoded, и если вы упомянули JSON, они, скорее всего, отправят его как application/json, поэтому могут не работать. Если это работает - вы можете сохранить полезную нагрузку в поле «Описание» в Cases (может быть, специальный тип записи?) И что-то с этим сделать. Я серьезно не фанат этого.

...