【发布时间】:2021-02-25 13:27:20
【问题描述】:
我正在尝试通过他们的 REST API 检索对讲机中的联系人。我正在使用以下代码,但出现以下错误:
代码
try {
$postdataarray['query'] = [ "field" => "email","operator" => "=","value" => $value['email']];
$postData = json_encode($postdataarray);
$postHeader = [
'Authorization:Bearer ergergergergergergergerg',
'Accept: application/json',
'Content-Type: application/json -d'
];
$curl = curl_init("https://api.intercom.io/contacts/search/");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HTTPHEADER, $postHeader);
$content = curl_exec($curl);
curl_close($curl);
echo $content;
} catch (Exception $e) {
error_log($e->getMessage());
}
错误
{ "errors": [ { "code": "not_found", "message": "请求的资源不存在;请检查您的路径并重试" } ], "type": "error.list" }
更新 现在我的代码如下所示:
try {
$postdataarray['query'] = [ "field" => "email","operator" => "=","value" => $value['email']];
$postData = json_encode($postdataarray);
$postHeader = [
'Authorization:Bearer zefzefzefzefzef',
'Accept: application/json',
'Intercom-Version: 2.3',
'Content-Type: application/json -d'
];
$curl = curl_init("https://api.intercom.io/contacts/search");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $postHeader);
$content = curl_exec($curl);
var_dump ($content);
curl_close($curl);
} catch (Exception $e) {
error_log($e->getMessage());
}
还是不行
【问题讨论】:
-
您可以尝试将
https://api.intercom.io/contacts/search/更改为https://api.intercom.io/contacts/search吗? -
还是一样:(
-
检查您使用的 api 版本,developers.intercom.com/building-apps/docs/… 并尝试添加到您的标头
Intercom-Version: 2.3 -
那是因为你设置了
CURLOPT_RETURNTRANSFER, FALSE,因此 curl_exec 只返回 true 或 false -
尝试使用 var_dump 而不是 echo