无法通过 python API 登录 Salesforce Sandbox



我正在使用python3.7.2模块simple-salesforce==0.74.2,并且在尝试与我的salesforce沙箱建立连接时遇到问题。我可以使用相同的凭据登录到销售队伍生产,如下所示:

from simple_salesforce import Salesforce
sf = Salesforce(username='user@domain.com', password='pswd', security_token='mytoken')

好吧,很酷。现在,我尝试使用以下方法登录到我的沙盒:

sf = Salesforce(username='user@domain.com.sandbox_name', password='pswd', security_token='mytoken', sandbox=True)

我收到错误:

simple_salesforce.exceptions.SalesforceAuthenticationFailed: INVALID_LOGIN:用户名、密码、安全令牌无效;或用户 锁定。

所以我尝试使用其他方法登录:

sf = Salesforce(username='user@domain.com.sandbox_name', password='pswd', security_token='mytoken', domain='sandbox_name')

这给出了一个不同的错误:

requests.exceptions.ConnectionError: HTTPSConnectionPool(host='sandbox_name.salesforce.com', port=443): Max 重试次数超出 url:/services/Soap/u/38.0(由 NewConnectionError(': 无法建立新连接: [Errno 8] 提供节点名称或服务名称,或未知'))

我正在使用一个名为sandbox_name的开发人员沙箱,按照salesforce的说明进行操作。有人可以就我做错的地方提供一些建议吗?

已解决。设置domain='test'并在沙盒帐户下生成新令牌

这里的建议可能有点不推荐使用。经过一番修补,我能够使用以下代码让simple_salesforce库在自定义域上使用 Salesforce 沙箱。请注意我传递给 api 的域以及需要附加到用户名的sand_box名称。

from simple_salesforce import Salesforce
USER = "user@domain.com.sandbox_name"
PASS = "pass"
SEC_TOKEN = "token"
DOMAIN = "<domain>--<sandbox_name>.<instance>.my"
sf = Salesforce(username=USER, password=PASS, security_token=SEC_TOKEN, domain=DOMAIN)

这对我不起作用,但做的是:

`sf = Salesforce(
username='my.email@test.com', 
password='sadfd8d8d8', 
security_token='d8d8asd8f8d8',
instance_url='https://my-dev-org-instance-dev-ed.my.salesforce.com')`

使用常用域,例如"login"或"test",或 Salesforce My 域。如果未使用,将默认为"登录"。

API 中的域参数有 3 个选项:

  1. 登录,这是预定义的 Salesforce 云/公共
  2. 测试
  3. ,即公开测试地址
  4. custom(Salesforce My Domain),您可以在其中指定其他所有内容,例如自定义沙盒地址,并指定前缀:在 salesforce.com 之前,在您的情况下sandbox_name

最新更新