0

我想使用 Google 跟踪代码管理器将数据发送到我们的 Salesforce 组织,用于我们网站上的某些事件(用户注册、转换等)。经过一番研究,我意识到JSforce将是实现这一目标的最简单方法。我在 Salesforce 中创建了一个新的连接应用程序,使用Postman试用了 Salesforce API,并成功地通过 API 创建了一个新用户帐户。然后我继续尝试在 Google 跟踪代码管理器中实现同样的目标。我阅读了 JSforce 的文档并尝试实现所有内容。但是,经过几个小时的故障排除和谷歌搜索,我似乎无法让它工作。

这是我当前的代码,它位于 Google 跟踪代码管理器中的“标签”中,可在所有页面上触发(仅用于测试):

https://jsforce.github.io/start/#web-browser

<script src="//cdnjs.cloudflare.com/ajax/libs/jsforce/1.9.1/jsforce.min.js"></script>
<script>
    jsforce.browser.init({
      clientId: '<MYCLIENTID>',
      redirectUri: 'https://cuttersclub.com'
    });

https://jsforce.github.io/document/#access-token

    var jsforce = require('jsforce');
    var conn = new jsforce.Connection({
      instanceUrl : 'https://um5.salesforce.com',
      accessToken : '<MYACCESSTOKEN>',
    });

https://jsforce.github.io/document/#create

    conn.sobject("Account").create({ Name : 'My Account #1' }, function(err, ret) {
      if (err || !ret.success) { return console.error(err, ret); }
      console.log("Created record id : " + ret.id);
    });
</script>

我在浏览器控制台中收到此错误:

Uncaught ReferenceError: require is not defined

编辑:删除var jsforce = require('jsforce');解决了这个问题,并且正在 Salesforce 中创建帐户。但是,现在我在浏览器控制台中收到以下错误:

Access to XMLHttpRequest at '<URL>' from origin '<CALLBACKURL>' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

如 JSforce 文档中所述,我认为这可能与代理服务器有关:https ://github.com/jsforce/jsforce-ajax-proxy

4

1 回答 1

0

我对 salesforce 了解不多,但“require”是来自 node.js 的东西,而不是在浏览器中实现的功能。

如果我正确理解了文档,那么对于浏览器项目来说,通过脚本标签调用 jsforce 脚本就足够了。之后,您应该不需要任何方式来“要求”文件,因为 jsforce 脚本已经包含了您需要的所有内容。所以如果你只是删除有问题的行(即所有对“require('jsforce');”的引用),你应该没问题。

于 2019-03-18T08:13:54.537 回答