我正在从salesforce的数据库中查询数据,并且正在使用jsforce -l http://test.salesforce.com
查找,然后执行.register
和.authorize
,然后可以从我的salesforce数据库中提取数据使用查询语言,效果很好。我的.jsforce / config.json看起来像
{
"connections": {
"<my_username>": {
"accessToken": "<my_accessToken>",
"instanceUrl": "<https://my.partial.instance.com>",
"client": "default"
}
},
"clients": {
"default": {
"clientId": "<myclientid>",
"clientSecret": "<longNumber>",
"redirectUri": "https://localhost:1111",
"loginUrl": "https://test.salesforce.com"
}
}
}
但是我想使用javascript中的jsforce自动执行此操作。现在我在jsforce的文档上尝试过类似的方法。
var jsforce = require('jsforce');
var conn = new jsforce.Connection({
oauth2 : {
// you can change loginUrl to connect to sandbox or prerelease env.
loginUrl : 'https://test.salesforce.com',
clientId : '<myclientid>',
clientSecret : '<longNumber>',
redirectUri : '<https://my.partial.instance.com>'
}
});
conn.login(username, 'password'+'<clientSecret>', function(err, userInfo) {
if (err) { return console.error(err); }
// Now you can get the access token and instance URL information.
// Save them to establish connection next time.
console.log(conn.accessToken);
console.log(conn.instanceUrl);
// logged in user property
console.log("User ID: " + userInfo.id);
console.log("Org ID: " + userInfo.organizationId);
// ...
});
ive也尝试了
之类的东西var conn = new jsforce.Connection({
oauth2 : {
clientId : '<clientId>',
clientSecret : '<clientSecret',
redirectUri : 'https://localhost:1111'
},
instanceUrl : '<https://my.partial.instance.com>',
accessToken : '<accessToken>'
});
和网站here上的类似内容都给了我{invalid_grant:身份验证失败},我相信这意味着我的授权无效。我做错了什么,我的东西是正确的,因为它在命令行界面上工作。谢谢
编辑:我做了所有卑鄙的事情,例如将我的ip列入白名单,并让用户自行授权BC再次在命令行上工作。