我正在尝试使用OAuth身份验证来获取Salesforce身份验证 token ,因此我引用了wiki docs,但是在获取授权代码后,当我使用5个必需参数发出Post请求时,出现了以下异常
{"error":"invalid_grant","error_description":"authentication failure"} CODE 400
JSON = {"error":"invalid_grant","error_description":"authentication failure"}
我想这是一个不好的要求。
PostMethod post = new PostMethod("https://login.salesforce.com/services/oauth2/token");
post.addParameter("code",##############);
post.addParameter("grant_type","authorization_code");
post.addParameter("redirect_uri","#################");
post.addParameter("client_id",this.client_id);
post.addParameter("client_secret",this.client_secret);
httpclient.executeMethod(post);
String responseBody = post.getResponseBodyAsString();
System.out.println(responseBody+" CODE "+post.getStatusCode());
请答复,如果知道异常(exception)情况?
最佳答案
对于像我一样陷入困境和沮丧的任何人,我在整个过程中都留下了详细的博客文章(带有图片和保证评论!)。如果需要,请单击链接:
http://www.calvinfroedge.com/salesforce-how-to-generate-api-credentials/
这是纯文字答案:
步骤1:
创建一个帐户。您可以在developer.salesforce.com上创建(免费)开发者帐户。
第2步:
忽略所有登录页面和入门废话。这是一个无止境的营销循环。
第三步:
点击“设置”链接
第四步:
在左侧工具栏中的“创建”下,单击“应用”
步骤5:
在“已连接的应用程序”下,单击“新建”
步骤6:
填写表格。重要字段是标记为必填字段和oauth部分。请注意,您可以为回调保留任何URL(我使用localhost)。
步骤7:
请注意,Salesforce的可用性很差。
步骤8:
按继续。最后,您有了client_id密钥(标记为“Consumer Key”)和client_secret(标记为“Consumer Secret”)。
步骤9:
可是等等!您还没有完成;选择“管理”,然后选择“编辑政策”
如果您担心禁用安全性,请暂时不要,只是想暂时启用它,以便进行API调用。一次完成所有工作后,请收紧权限,这样您就可以弄清楚哪种设置会给您带来身份验证错误。
步骤10:
庆祝!此curl调用应该成功:
生产中:
curl -v https://login.salesforce.com/services/oauth2/token \
-d "grant_type=password" \
-d "client_id=YOUR_CLIENT_ID_FROM_STEP_8" \
-d "client_secret=YOUR_CLIENT_SECRET_FROM_STEP_8" \
-d "[email protected]" -d "[email protected]"
在沙盒或测试中:
curl -v https://test.salesforce.com/services/oauth2/token \
-d "grant_type=password" \
-d "client_id=YOUR_CLIENT_ID_FROM_STEP_8" \
-d "client_secret=YOUR_CLIENT_SECRET_FROM_STEP_8" \
-d "[email protected]" -d "[email protected]"
注意:
关于salesforce - Salesforce身份验证失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12794302/