使用Google跟踪代码管理器和JSforce POST到Salesforce API不能正常工作?

时间:2019-03-17 21:36:20

标签: rest salesforce google-tag-manager salesforce-lightning jsforce

我想使用Google跟踪代码管理器将数据发送到我们的Salesforce组织,以进行网站上的某些活动(用户注册,转换等)。经过一番研究,我意识到JSforce是实现这一目标的最简单方法。我在Salesforce中创建了一个新的关联应用程序,使用Postman试用了Salesforce API,并成功地通过该API成功创建了一个新的用户帐户。然后,我继续尝试在Google跟踪代码管理器中实现相同的目的。我阅读了JSforce的docs,并尝试实现所有内容。但是,经过数小时的故障排除和Google搜索之后,我似乎无法正常运行。

这是我当前的代码,它位于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

1 个答案:

答案 0 :(得分:0)

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

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