使用纯 Javascript 页面访问 force.com REST API

Access the force.com REST API with a pure Javascript page

我想在 Javascript 中开发一个前端(可能使用诸如 AngularJS 之类的奇特框架之一)来使用我的 Salesforce 组织的 REST API。

不想将我的项目嵌入到 Salesforce 技术中,所以基本上

确实希望在单独的服务器上编写我自己的前端,该服务器只对 Salesforce 后端进行 AJAX 调用。

此外,我希望任何用户都可以访问该应用程序,即使he/she 没有 Salesforce 帐户也是如此。因此 AJAX 调用不应要求用户登录 Salesforce。我希望匿名用户能够从我的组织中检索 public 数据并在有用时创建新条目(例如在调查的情况下)。

尽管这些要求会产生一些安全问题,但我可以想象 Salesforce 会关注其 API 端点上的请求速率限制,并且可以限制对 API 的访问基于主机名(例如,只应允许原始主机 my-trusted-domain.com 的请求,否则发送 403-Forbidden)。如果顺丰不提供这样的基本功能,我会感到惊讶。

您将如何进行?是否有最小的 Javascript 代码可以在任何域上开箱即用,而不会遇到 CORS 问题?

对 Salesforce 的所有 REST API 调用都必须经过身份验证。如果您想要匿名 API 访问,那么您将需要通过添加身份验证令牌的服务器(如在 Heroku 上)代理经过身份验证的调用。或者您可以使用 Heroku Connect 将您的 Salesforce 数据作为 Postrgres 数据库公开给 Heroku 应用程序。

如果您选择 REST 路线,请查看 ForceServer and my CORS Proxy for Salesforce。两者都没有为您正在寻找的匿名访问设置开箱即用,但可以轻松调整以支持该用例。

顺便说一句:当允许通过代理匿名访问您的 Salesforce 数据时,请确保您正确处理安全和请求限制。