0

我正在尝试使用JSForce连接到 Salesforce SOAP API

const connection = new jsforce.Connection({
  loginUrl: "https://customdomain.my.salesforce.com",
});
await connection.login(username, password);

当我运行它时,我收到以下错误

Error: INVALID_LOGIN: Invalid username, password, security token; or user locked out.
    at /Users/juancaicedo/code/calm/salesforce-poc/node_modules/jsforce/lib/connection.js:1552:13
    at tryCallOne (/Users/juancaicedo/code/calm/salesforce-poc/node_modules/promise/lib/core.js:37:12)
    at /Users/juancaicedo/code/calm/salesforce-poc/node_modules/promise/lib/core.js:123:15
    at flush (/Users/juancaicedo/code/calm/salesforce-poc/node_modules/asap/raw.js:50:29)
    at processTicksAndRejections (internal/process/task_queues.js:75:11)
(Use `node --trace-warnings ...` to show where the warning was created)

这是一种很好的身份验证方式,还是我应该做其他事情?我在其他地方看到过提到安全令牌,这是首选吗?

笔记

我可以使用这些凭据成功登录 Salesforce UI ✅</p>

我愿意使用另一个 Node.js 库,但确实需要使用 SOAP API(使用 REST API 是不够的)。

4

2 回答 2

1

一些 Salesforce 组织也需要传递安全令牌。您可能会找到您的令牌并尝试在您的 API 调用中传递它。

https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_concepts_security.htm

于 2021-03-03T02:00:31.063 回答
1

如果您在 salesforce 中使用jsforce,在这种情况下,您可以使用以下代码段直接获取连接对象:

var conn = new jsforce.Connection({ accessToken: '{!$Api.Session_Id}' });

如果您想从外部系统连接,您可以使用以下任何一种方式:

  • 使用访问令牌和实例 URL
  • 使用用户名和密码

根据您各自的库指定键。

注意:如果您遵循用户名和密码流程,在这种情况下,您必须在密码末尾附加一个安全令牌才能成功进行身份验证。您可以通过转到您的用户销售人员设置来获取该安全令牌。

对于节点 JS,你可以参考这个包: https ://www.npmjs.com/package/node-salesforce

于 2021-03-03T06:18:27.977 回答