You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Salesforce REST API持续返回400错误,求排查方案

Salesforce沙盒API获取访问令牌400错误排查方向

以下是针对你遇到的400错误的具体排查点:

  • 密码需包含安全令牌
    Salesforce密码认证模式要求使用「登录密码+安全令牌」的组合值,不是单独的登录密码。若未获取过安全令牌,可登录沙盒账号后通过「设置→我的个人信息→重置我的安全令牌」获取,将令牌直接追加到原密码后作为PASSWORD变量的值。

  • 核对沙盒域名准确性
    沙盒域名格式并非固定为trailblaze.my.salesforce.com,部分沙盒使用sandbox.my.salesforce.com或自定义域名。登录沙盒后复制地址栏完整域名替换DOMAIN变量,确保完全匹配。

  • 检查Connected App配置

    • 确认Connected App的OAuth范围至少勾选api(允许API访问)权限;
    • 若开启了IP限制,需将运行代码的服务器IP加入允许列表,或暂时关闭IP限制测试;
    • 确保已勾选「启用OAuth设置」,且回调地址填写有效地址(如https://login.salesforce.com/services/oauth2/success)。
  • 验证用户账号权限

    • 确认账号已开启API Enabled权限(在用户配置的权限集或配置文件中查看);
    • 账号处于激活状态,未被冻结。
  • 查看详细错误响应
    修改代码打印完整的错误响应内容,这是定位问题最直接的方式:

    print(response.json())
    

    响应会返回具体错误码和描述,比如invalid_grant代表凭证无效,ip_restricted代表IP受限等。

  • 确认请求编码正确性
    可显式指定请求头确保payload编码符合要求:

    headers = {'Content-Type': 'application/x-www-form-urlencoded'}
    response = requests.post(DOMAIN + oauth_endpoint, data=payload, headers=headers)
    

你的原始代码:

from consumer_details import CONSUMER_KEY, CONSUMER_SECRET, USERNAME, PASSWORD
import requests
import pandas as pd

DOMAIN = 'https://myplaygroundname.trailblaze.my.salesforce.com'

payload = {
    'grant_type': 'password',
    'client_id': CONSUMER_KEY,
    'client_secret': CONSUMER_SECRET,
    'username': USERNAME,
    'password': PASSWORD
}

oauth_endpoint = '/services/oauth2/token'
response = requests.post(DOMAIN + oauth_endpoint, data=payload)

print(response)

内容的提问来源于stack exchange,提问作者Tillski97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:16:10