Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Rest api php从salesforce获取潜在客户时,会话ID无效_Php_Rest_Session_Salesforce_Invalidation - Fatal编程技术网

通过Rest api php从salesforce获取潜在客户时,会话ID无效

通过Rest api php从salesforce获取潜在客户时,会话ID无效,php,rest,session,salesforce,invalidation,Php,Rest,Session,Salesforce,Invalidation,您好,我需要通过RESTAPI从销售人员那里获得线索。到目前为止,我已经通过RESTAPI成功地完成了oauth,我得到了以下回复 stdClass Object ( [access_token] => 1111xxxxxxxx44444444444444 [instance_url] => https://eu7.salesforce.com [id] => https://login.salesforce.com/id/000000000 [

您好,我需要通过RESTAPI从销售人员那里获得线索。到目前为止,我已经通过RESTAPI成功地完成了oauth,我得到了以下回复

stdClass Object
(
    [access_token] => 1111xxxxxxxx44444444444444
    [instance_url] => https://eu7.salesforce.com
    [id] => https://login.salesforce.com/id/000000000
    [token_type] => Bearer
    [issued_at] => xxxxxxxxxxxx
    [signature] => xxxxxxxxxxxx
)
之后,为了获得联系线索,我使用下面的代码

$email = 'test_@gmail.com';
$query = 'SELECT Id, Email FROM Lead';
if($email != null){
$query .= sprintf("WHERE Email ='%s'", $email);
}
$url = $instance_url. '/services/data/v33.0/query?q=' . urlencode($query);
$paramsnew = "access_token=$access_token";
$urlcurl = curl_init($url);
curl_setopt($urlcurl, CURLOPT_HEADER, false);
curl_setopt($urlcurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($urlcurl, CURLOPT_POST, true);
curl_setopt($urlcurl, CURLOPT_POSTFIELDS, $paramsnew);
curl_setopt($urlcurl, CURLOPT_SSL_VERIFYPEER, false);
$urljson_response = curl_exec($urlcurl);
echo $urljson_response; 
curl_close($urlcurl);
但作为回应,我的反应是

[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]

请建议如何修复此问题。

最后,我使用以下代码修复了此问题

$firstname = 'rohit';
$query = 'SELECT FirstName , LastName ,Id, Email FROM Lead ';
if($firstname != null){
$query .= sprintf("WHERE FirstName ='%s'", $firstname);
}
$url = $instance_url. '/services/data/v33.0/query?q=' . urlencode($query);
$paramsnew = "access_token=$access_token";
$urlcurl = curl_init($url);
curl_setopt($urlcurl, CURLOPT_HEADER, false);
curl_setopt($urlcurl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($urlcurl, CURLOPT_HTTPGET, 1);
curl_setopt($urlcurl, CURLOPT_HTTPHEADER,
    array("Authorization: OAuth $access_token"));
curl_setopt($urlcurl, CURLOPT_SSL_VERIFYPEER, false);
$urljson_response = curl_exec($urlcurl);
print_r(json_decode($urljson_response)); 
curl_close($urlcurl);
我们需要像这样传递访问令牌

curl_setopt($urlcurl, CURLOPT_HTTPHEADER,
    array("Authorization: OAuth $access_token"));
我们需要使用旋度的get方法

curl_setopt($urlcurl, CURLOPT_HTTPGET, 1);

1新API版本的rest客户端响应的更多示例

会话(承载令牌)仅持续20分钟,然后需要新的验证。另外,对象和$access\u令牌之间的路径是什么