-1

我的目标是创建一个从 Salesforce 到 SAP 应用程序的 REST API 集成。

成功通过 Chrome APP

1. 我需要做的就是通过 REST API 从 sap 应用程序中检索值。当我尝试使用 Chrome APP 'Advanced Rest Client' 并使用 POST 方法传递了适当的 URL 和内容时,我能够从本地服务器数据库中检索值。

对于 EG:如果我通过请求 92126,那么我能够得到正确的响应“SAN DIEGO”。

这是高级 REST 客户端的链接 ( https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffdnphfgcellkdfbfbjeloo?hl=en-US )。

来自 Salesforce 的问题:

  1. 我创建了一个远程站点设置 
  2. 当我在 SAlesforce 中创建这个 REST 类并尝试调用端点时,它会抛出这个错误。

System.HttpResponse[状态=服务不可用,状态代码=503]

由于提供给我们的 web api url 位于本地 sql 服务器中,即私有托管,正如我们在 Salesforce 中所知道的那样,用于进行标注的 URL 必须是公开的。但该 URL 仅出于安全原因而不公开托管。我们应该实现它,有什么方法可以实现它?应在 Salesforce 或服务器中进行哪些更改以相互通信并允许进行标注?

4

1 回答 1

3

您的端点很可能不允许从您通过说它不是公开的某些 IP 范围之外的访问。Salesforce 是托管在您的服务所在域之外的 SaaS 应用程序。为了让 Salesforce 访问该端点资源,您需要将 Salesforce IP 范围列入白名单,可在此处找到。

白名单允许 Salesforce 访问资源。唯一需要注意的是,由于 Salesforce 是多租户,这意味着您列入白名单的范围内的任何 Salesforce 实例都可以访问您的端点。如果这不合适,您可能希望添加某种标题或对调用的请求签名,以从任何其他实例中唯一标识您的 Salesforce 实例,以验证该调用来自您的 Salesforce 组织。

(我将链接到文章而不是在此处粘贴 IP 范围,因为这些范围将来可能会改变)。

于 2018-05-07T14:19:42.527 回答