PHP / Salesforce连接应用程序问题 - {" error_description":"身份验证失败","错误":" invalid_grant"}

时间:2014-07-15 14:50:13

标签: php salesforce

我已经在我的应用程序和Salesforce之间使用PHP中的REST API的Web服务器流成功实现了oAuth2身份验证过程,并且在与Developer Edition类型的Salesforce帐户连接时,它的工作正常。< / p>

但是,在尝试连接测试或prod环境类型的Salesforce帐户时,它无法正常工作:我无法获得具有Salesforce授权代码的访问令牌,因为Salesforce给了我这个错误:< / p>

{&#34; error_description&#34;:&#34;身份验证失败&#34;,&#34;错误&#34;:&#34; invalid_grant&#34;}

有人知道它为什么不起作用吗?

这就是我所做的:

步骤1 =&gt; OK =&gt;将用户重定向到Salesforce

步骤2 =&gt; OK =&gt;用户登录

步骤3 =&gt; OK =&gt;用户使用授权码重定向到我们的应用程序

步骤4 =&gt;不行等=&gt;我们使用Salesforce提供的授权码

请求访问令牌

我们已经尝试了所有这些(可能不是:D):我们检查了我们端的所有安全配置,在客户端,我们检查了IP限制(没有使用IP限制),我们已经提供了我们的App&#34; Full Access&#34;但仍然没有运气。我们正在接收正确编码的授权码,看起来很正常。

有人知道它为什么不起作用吗?

您是否知道我是否需要验证我们已连接的应用程序才能被测试或产品类型的Salesforce帐户使用?

非常感谢你提前帮助。 干杯 昆汀

注意:这是我猜的以下问题的副本,但它没有答案:( https://developer.salesforce.com/forums?id=906F00000009AFvIAM

我也看到了这一点,但它没有解决我的问题Salesforce Authentication Failing

编辑1:

以下是我使用的代码(在我们的案例中,$ instance是&#39; https://test.salesforce.com&#39;)

    $url = $instance . '/services/oauth2/token?format=json';
    $postFields = array(
        'code' => $code,
        'grant_type' => 'authorization_code',
        'client_id' => $this->clientId,
        'client_secret' => $this->clientSecret,
        'redirect_uri' => $this->redirectURL);
    // Create the CURL object.
    $handle = curl_init($url);
    curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($handle, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($handle, CURLOPT_POST, TRUE);
    curl_setopt($handle, CURLOPT_POSTFIELDS, $postFields);

1 个答案:

答案 0 :(得分:1)

我觉得自己很愚蠢地回答我自己的问题,但总有一天可能对某人有所帮助。

在我的“编辑1”中,我对$ instance的内容错了。

它没有指向“https://test.salesforce.com”,它指向“https://login.salesforce.com”,因此获得“身份验证失败”错误是正常的。

因此,如果您遇到同样的问题,请检查您发送请求的网址。