Как я могу завить глубокое сканирование? - PullRequest
0 голосов
/ 26 сентября 2018

Мое глубокое сканирование только дает нулевое значение.

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"https://api.deepcrawl.com/accounts/00000/projects/195334/crawls/1306396/reports/thin_pages_basic");

curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Auth-Token:Private'));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output2 = curl_exec ($ch);
curl_close ($ch); 

$results = json_decode($server_output2);

Чтобы создать сеанс, сначала необходимо сгенерировать ключ API вручную.Это пара ключ / значение, которая может быть сгенерирована на странице доступа к API.Когда вы нажмете «Создать новый ключ API», появится всплывающее окно со значением «Ключ API», а в таблице «Активные ключи» вы найдете идентификатор ключа API.Затем он отправляется с помощью обычной аутентификации в POST-вызове на маршрут сеансов.

curl -X POST -u '123:abcdef' https://api.deepcrawl.com/sessions
{
"token":"abcdef123",
"_user_href":"/users/example-user",
...
}

Токен, возвращенный из вызова к сеансам, затем передается на все вызовы API в виде заголовка X-Auth-Token:

curl -X GET -H 'X-Auth-Token:' https://api.deepcrawl.com/accounts/1/projects

Может кто-нибудь объяснить мне больше об аутентификации DeepCrawl?Как я могу свернуть его, используя только X-Auth-Token.Извините за мой плохой английский.Спасибо

1 Ответ

0 голосов
/ 04 октября 2018

CURL иногда может быть сложным.

Когда я сталкиваюсь с проблемами с CURL, я сначала пытаюсь сделать то же самое в командной строке, в этом случае это сработало отлично, поэтому мы можем отклонить любую проблему с APIили на CURL, поэтому мы должны предположить, что проблема связана с вызовом php.

Когда вы получаете NULL, вероятно, есть ошибка, установленная в обработчике curl, вам просто нужно найти ее и вывести на экран:

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL,"https://api.deepcrawl.com/accounts/00000/projects/195334/crawls/1306396/reports/thin_pages_basic");

    curl_setopt($ch, CURLOPT_POST, 0);
    curl_setopt($ch,CURLOPT_HTTPHEADER,array('X-Auth-Token:Private'));

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $server_output2 = curl_exec ($ch);

    if (curl_errno($ch)) {
        print curl_error($ch);
        die();
        // or whatever you might want to do with this error
       } 
    curl_close ($ch); 

    $results = json_decode($server_output2);

В этом случае ошибка была:

Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента

Здесь вы можете увидеть, как решить эту проблему, просто нужно добавить действительный сертификат CA в ваш php.ini (в примере используется cacert), например:

1) Загрузите последнюю версию cacert.pem from https://curl.haxx.se/ca/cacert.pem

2) Добавьте следующую строку в php.ini (если это общий хостинг, и у вас нет доступа к php.ini, вы можете добавить его в .user.ini в public_html.)

curl.cainfo = "/ path / to / download / cacert.pem"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...