我正在尝试获取我的销售团队partialbox的会话ID。
我的代码:
curl https://test.salesforce.com/services/oauth2/token -d "grant_type=password" -d "client_id=definitely the correct client id" -d "client_secret=definitely the correct client secret" -d "username=mymail@mail.com.partialbox" -d "password=passandsecuritytoken"
我还做了什么:
- 在我的已连接应用程序设置中授予完全访问权限
- 设置IP限制以放松IP限制
- “所有使用者都可以受权自己”
- 经过双重检查的通行证、客户端ID、客户端密码、用户名
我仍然收到错误{"error":"invalid_grant","error_description":"authentication failure"}
。
我搜索了SF论坛和StackOverflow问题,但是我没有找到任何解决这个问题的方法。有人知道,还有什么问题吗?
9条答案
按热度按时间fdbelqdn1#
我仍然感到困惑,我不知道到底发生了什么,但我有你同样的问题,我能够“修复”它做以下。
一是放宽应用的IP限制。
管理应用程序-〉连接的应用程序-〉(我的应用程序的名称)
然后将“IP放宽”设置为“放宽IP限制”。
据我所知,在我使用的沙盒应用程序中没有IP限制,但我对这个还很陌生,所以也许他们藏在某个地方。
第二,在我的curl命令中,看起来很像你的,我省略了安全令牌,所以密码字段只是密码。
我真的不知道我是否已经解决了我的问题,但我得到了一个访问令牌,而不是“invalid_grant”错误。
我计划做一些额外的调查,以找出发生了什么事,但我想,当我有这个问题了,我会确保这个答案在这里。
wf82jlnq2#
请确保您已完成这些步骤。
尝试在启用TLS 1.1的情况下发出curl请求
curl -v https://login.salesforce.com/services/oauth2/token-d“授权类型=密码”-d“客户端标识=xxxxxxxxxxxxXXXXXXXX”-d“客户端密码=123456789”-d“username=xx@abcd.com“-d“密码=xxxxxxxxxx”
9udxz4iz3#
Salesforce要求在2017年7月22日之前升级到TLS 1.1或更高版本,以符合安全性和数据完整性方面的行业最佳实践:from help.salesforce.com。
如果您使用的是4.6之前的.Net版本,请尝试添加以下代码:
另一个选项是编辑注册表:
请查看此链接以获取更多详细答案:Default SecurityProtocol in .NET 4.5
euoag5mw4#
Here are the setting I have in my Salesforce sandbox.
So basically I have added the Profile of my REST API user to the list of App Profiles.
我的请求如下所示:
gv8xihay5#
我真的很擅长为API使用随机密码,包括:,或者其他一些普通人不使用的werid密码。Salesforce似乎不喜欢API中的这些字符,所以我使用数字和字母,没有特殊字符。我已经不止一次遇到这种情况,所以希望这些东西能帮助其他人,也能帮助我。
nwlls2ji6#
您必须在连接的应用程序中添加配置文件:转到:连接的应用程序-〉配置文件-〉管理配置文件-〉应用程序配置文件分配-〉选择系统管理员-〉保存
41ik7eoe7#
将OAuth Policy Permitted Users设置更改为“All users may self-authorize”(所有用户可以自行授权)使我能够成功进行API调用。
在管理已连接的应用程序-〉编辑中找到
Screenshot of Salesforce setting
kdfy810k8#
它可以是任何东西。但是......在我的例子中,我用于用户帐户的密码包含一个磅号或井号(#),Salesforce显然一点也不喜欢。当我在Postman中运行它时,得到了一个“400错误语法”的响应。
我把密码改成严格的字母数字(没有标点符号),立刻就拿到了令牌。
所以,我的建议是,如果你像我在这台电脑上做的那样,把你的手机对着墙壁撞了几个小时或更长时间,以为你疯了,就试着把密码改为字母数字字符。这可能会奏效。如果不行,那么至少你可以排除这种可能。
flvlnr449#
在您的url中使用您的组织示例url,或login.salesforce.com或test.salesforce.com
服务/身份验证2/令牌