要验证API调用,必须首先生成一个会话以获取令牌。然后,您必须将会话令牌作为X-Auth-Token标头的值发送,以对API调用进行身份验证。
要创建会话,您首先需要手动生成一个API密钥。这是可以在“ API访问”页面中生成的键/值对。单击生成新的API密钥时,将显示一个弹出窗口,其中包含API密钥值,并且在活动密钥表中可以找到API密钥ID。然后,它通过POST调用中的基本身份验证发送到会话路由。
我已经遵循了deepcrawl的Api文档,但是我在做什么错呢?
我有X-Auth-Token
和API KEY ID
应该放在哪里?
$deephead = "X-Auth-Token: asdjasiojqoieuqiouwqpofoqwojeq";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.deepcrawl.com/sessions");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $deephead);
// Get the response
$response = curl_exec($ch);
// Close cURL connection
curl_close($ch);
// Decode the response (Transform it to an Array)
$result = json_decode($response);
//debug the response
dd($result);
我什至无法进入CURLOPT_GET
,因为我的post
只得到空值。任何想法/想法我该如何解决。先感谢您。
答案 0 :(得分:1)
看起来您正在尝试生成令牌,看起来好像已经拥有了。
要验证API调用,您必须首先生成一个会话以获取 令牌。然后,您必须发送会话令牌作为 X-Auth-Token标头用于验证API调用。
要创建会话,您首先需要手动生成一个API密钥。 这是可以在“ API访问”页面中生成的键/值对。 当您单击Generate New API Key时,将显示一个弹出窗口,其中包含 API密钥值,并在活动密钥表中找到该API 密钥ID。然后通过POST调用中的基本身份验证将其发送到 会议路线。
curl -X POST -u '123:abcdef' https://api.deepcrawl.com/sessions { "token":"abcdef123", "_user_href":"/users/example-user", ... }
不是最清晰的,但是就在那里。
$headers = [
'Content-Type: application/x-www-form-urlencoded',
'accept: text/html'
];
$username='yourusername';
$password='supersecret';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.deepcrawl.com/sessions");
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "root=1");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
// Get the response
$response = curl_exec($ch);
// Close cURL connection
curl_close($ch);
// Decode the response (Transform it to an Array)
return json_decode($response);
这将返回类似的内容
{
"token":"abcdef123",
"_user_href":"/users/example-user",
...
}
由于您已经有了令牌,因此不需要点击会话。您可以拨打电话。
$headers = [
'X-AUTH-TOKEN: your-api-key',
'accept: text/html'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.deepcrawl.com/system_statuses");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
// Get the response
$response = curl_exec($ch);
// Close cURL connection
curl_close($ch);
// Decode the response (Transform it to an Array)
return json_decode($response);