Tag: salesforce

实施oauthlogin到salesforce应用程序,但刷新令牌未定义

我正在使用node.js处理AWS Lambda。 我正在使用node-salesforce使用OAuth连接到SF应用程序。 login后我无法获取刷新令牌。 var conn = new sf.Connection({ oauth2 : { clientId : 'XXXXXXXXXXXXXXXXXXXXXXXXXXX', clientSecret : 'XXXXXXXXXXXXXXXX', redirectUri : 'https://localhost/callback' } }); conn.login('Username', 'XXXXXXXXX', function(err, userInfo) { if (err) { return console.error(err); } console.log(userInfo); console.log(conn); }); 在输出中我期待一个未定义的刷新令牌。 我能够得到accessToken,我正在使用它进行进一步的操作。 现在如何更改访问令牌的情况下更改访问令牌。 我已经通过它的文档( https://www.npmjs.com/package/node-salesforce )。 他们使用express.js和redirect到salesforce页面进行授权。 由于这是写在lambda中,所以我不会喜欢在这里使用express.js或redirect授权。 我的问题是如何获得刷新令牌。 有没有办法做到这一点。 如果我做错了,请告诉我。

Salesforce API会话过期,如何自动重新连接

我正在使用节点模块jsforce将销售线索添加到销售线索表。 https://www.npmjs.org/package/node-salesforce这里是文档。 该网站现在是活的,但每天我不得不重新启动服务器会话过期,我收到这个消息 { [INVALID_SESSION_ID: Session expired or invalid] name: 'INVALID_SESSION_ID', errorCode: 'INVALID_SESSION_ID' } undefined 以下是设置它的代码部分: conn.sobject("Lead").create({ email : req.body.email, firstname : req.body.first_name, lastname : req.body.last_name, title : req.body.job_title, company : req.body.company, leadsource: 'Clearing Microsite', description: req.body.message }, function(err, ret) { if (err || !ret.success) { return console.error(err, ret); } console.log("Created record id : " […]

节点/angular度/快速路由问题

我正在创build一个简单的节点应用程序,使用节点angular度seed + express( https://github.com/btford/angular-express-blog/ ),我试图绑定到Salesforce REST中的数据。 我select了一个为Salesforce提供auth和CRUD层的节点包,叫做NForce( https://github.com/kevinohara80/nforce )。 我创build了一个简单的身份validationstream程,使用我的节点应用程序中定义的获取路线。 问题是,虽然URL被加载,我假设路由发生,我没有按照我的路由get函数规定的redirect。 奇怪的是,如果在点击我的loginbutton(然后具有身份validationURL)之后刷新页面,则所有正确的事件开始发生,并按预期redirect到OAuthstream程。 有问题的路由是“/ oauth / authenticate” 我不能告诉这是否是一个Angular问题的节点路线,这是没有定义在Angular: https : //github.com/greenstork/donor-360/blob/master/public/js/app.js 或者,如果这是我在Node中构build路由的问题: https://github.com/greenstork/donor-360/blob/master/app.js https://github.com/greenstork/donor-360/tree/master/routes 我相对较新的节点和JS MVC编程,所以任何意见,将不胜感激。 提前致谢。

无法使用forcedroid从salesforce创buildandroid应用程序来安装cordova-plugin-whitelist

我正在试图创build一个强制混合Android应用程序。 在我input的forcedroid create命令后,我得到下面的日志 C:\Git>forcedroid create Enter your application type (native, hybrid_remote, or hybrid_local): hybrid_local Enter your application name: test Enter the target directory of your app: ibeaconapp Enter the package name for your app (com.mycompany.my_app): com.yameen.test Creating a new cordova project. C:\Git\ibeaconapp\test C:\Git Adding android project… Creating Cordova project for the Android platform: Path: platforms\android […]

通过节点连接salesforce时出错

我试图连接来自节点的salesforce api和使用nforce包相同。 最初我成功地build立了oauthauthentication。 在尝试与salesforce组件交互时,发送“/ account”路由请求时出现以下错误。 任何人都可以帮助我。 /opt/test_node/node-sf-connection/node_modules/nforce/index.js:905 opts.oauth.instance_url,^ TypeError:无法读取在Connection._apiRequest(/ opt / test_node / node-sf)处未定义的属性'instance_url' Connection.queryHandler(/opt/test_node/node-sf-connection/node_modules/nforce/index.js:674:8)在Connection.query(/ opt)/连接/ node_modules / nforce / index.js:905:17) /test_node/node-sf-connection/node_modules/nforce/index.js:618:15)在/opt/test_node/node-sf-connection/server.js:51:11在Object.resolve(/ opt / test_node / node.modules / nforce / lib / promises.js:25:20)在/opt/test_node/node-sf-connection/node_modules/nforce/index.js:301:16在Object.resolve(/ opt /test_node/node-sf-connection/node_modules/nforce/lib/promises.js:25:20)在Request._callback(/opt/test_node/node-sf-connection/node_modules/nforce/index.js:863:23 )在Request.mit.callback(/opt/test_node/node-sf-connection/node_modules/request/request.js:188:22)在emitTwo(events.js:106:13) (events.js:191:7)。 (events.js:188:7)的emitOne(events.js:96:13)处的IncomingMessage(/opt/test_node/node-sf-connection/node_modules/request/request.js:1171:10) 。 (/opt/test_node/node-sf-connection/node_modules/request/request.js:1091:12)IncomingMessage.g(events.js:292:16) 请find我试过的下面的代码片段。 var express = require('express'); var nforce = require('nforce'); var app = express(); app.use(bodyParser.json()); console.log("Trying […]

使用Node在内存中处理大量的JSON数据集

我从Salesforce拉取JSON数据。 我可以有大约1万个logging,但从来没有更多。 为了防止Api的限制,并为每个请求命中Salesforce,我想我可以每小时查询数据,然后将其存储在内存中。 显然这会更快,更不容易出错。 一个JSON对象将有大约10个属性,也许还有一个嵌套的两个或三个属性的JSON对象。 我正在使用类似于下面的方法来查询logging。 getUniqueProperty: function (data, property) { return _.chain(data) .sortBy(function(item) { return item[property]; }) .pluck(property) .uniq() .value(); } 我的问题是 将这些数据存储到内存中并处理内存中的数据会产生什么后果? 我显然不想通过对数据进行大量过滤来阻止服务器。 我以前从来没有使用过Redis,但会像caching数据库帮助? 最好是每隔一小时查询一次数据,并将这个JSON响应保存在Mongo中。 那么我会尽全力去对付蒙戈而不是内存? 每查询一次Salesforce,我只需刷新数据库并重新插入数据即可。

NodeJS代理不按预期工作

请求的当前路由来自localhost:3001,通过在localhost:3001 / proxy上的同一本地主机上运行的代理,然后将请求路由到Salesforce实例。 代理使用ExpressJS进行,客户端应用使用AngularJS。 注意:我确实记得在我的密码末尾(Salesforce API要求)标记了我的安全令牌,虽然在使用cURL时似乎没有必要。 这里有一系列的HTTP跟踪,希望能够提供一些线索: 来自Angular.JS App的HTTP请求日志: POST /proxy HTTP/1.1 Host: localhost:3001 Connection: keep-alive Content-Length: 234 Pragma: no-cache Cache-Control: no-cache X-User-Agent: salesforce-toolkit-rest-javascript/v29.0 Origin: http://localhost:3001 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36 Content-Type: application/x-www-form-urlencoded Accept: application/json, text/plain, */* SalesforceProxy-Endpoint: https://uniquename.salesforce.com/services/oauth2/token Referer: http://localhost:3001/ Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.8 Cookie: liveagent_oref=; […]

无法将节点请求发布到salesforce的web-to-lead

我们已经要求我们的客户与其销售人员进行整合。 但是,他们拒绝给我们一个oAuth标记。 他们提供的是一个Web到铅的oid 。 本质上,Web-to-Lead是一个简单的Web表单,它通过一个oid生成,将其与salesforce账户相关联。 但是,我无法使用curl,postman或node.js和请求模块获取其他任何信息以发布到salesforce。 我设置了一个沙箱来testing这个,因为他们抱怨说他们没有得到应用程序。 我也注意到,这些应用程序没有出现,但是如果我使用salesforce为我生成的实际表单,一切似乎都正常。 基本上我的代码就像这样: var request=require("request"); var form={ "oid":"xxxx", "first_name":"TEST", "last_name":"TEST", "email":"xxxx@gmail.com", "street":"xxx Some Road", "city":"somewhere", "state":"Wisconsin", "zip":"54944", "00No00000045JeV":"Internet", "00No00000045Jef":"American Driver Network", "00No00000045Jek":"Class A", "00No00000045Jep":"50", "00No00000045Jf4":"0", "00No00000045JfE":"0", "00No00000045JfJ":"0", "retURL":"http://" }; var options={ url:"", form:form }; request.post(options,function(err,resp,body){ //salesforce gives no useful response so do nothing }); 请求模块应该适当地设置我的标题。 销售队伍forms: <!– ———————————————————————- –> […]

从salesforce.com访问本地nodejs服务器

我在我的机器上使用nodejsbuild立了一个本地服务器。 像这样的东西: var fs = require("fs"); var config = JSON.parse(fs.readFileSync("config.json")); var host = config.host; var port = config.port; var express = require("express"); var app = express(); app.get("/",function(request,response){ response.send('thanks for visiting my site'); }); app.listen(port, host); 现在,如果我发送一个http请求到这个服务器,我得到了502 seervice不可用的响应。 HttpRequest req = new HttpRequest(); req.setEndpoint('http://localhost:4555/'); req.setMethod('GET'); Http http = new Http(); HTTPResponse res = http.send(req); 我还在远程站点设置中添加了localhost url,但仍无法拨打电话。 […]

最小化Salesforce Streaming API和Heroku Connect之间的延迟

我目前有一个在Heroku中运行的应用程序(node.js),使用Heroku Connect连接到Salesforce来读取/写入数据。 Heroku Connect基本上有一个Salesforce选定数据的副本,通过Streaming API提取。 我的应用程序立即写入HC PostgreSQL数据库,立即写入Salesforce。 这增加了一个独特的参考字段,也是Salesforce中即时生成的,但是这个信息被延迟反馈给Heroku Connect。 我不确定延迟是因为streamAPI还是Heroku Connect,但我不确定如何最小化/删除这个延迟,以便Heroku Connect立即使用新生成的字段进行更新。 请看下面的图表,显示什么是即时和延迟发生的地方: