Проблема при получении данных из API с другим результатом в зависимости от источника запроса - PullRequest
1 голос
/ 15 апреля 2019

Прежде всего, я не обращаюсь за помощью к API, прежде чем кто-либо это подразумевает. У меня странная проблема при обращении к API Active Campaign .

Существует конкретная конечная точка, которую я использую, это конечная точка GET contacts. Обычно у меня нет проблем с этой конечной точкой, но в конкретном случае, когда я использую параметр segmentid get, у меня возникают несоответствия с информацией.

Я использую два способа добраться до API. Один из них - Postman, а другой - мой код, использующий http-клиент Guzzle для php.

Когда я консультируюсь в Postman, при первом результате я получаю странную переменную с надписью waiting => true, а мой массив contacts пуст. Когда я снова обращаюсь к той же самой конечной точке, переменная waiting исчезает, и я получаю соответствующий массив контактов, заполненный соответствующими результатами. Итак, в основном идея заключается в том, что если я сделаю это во второй раз, я получу результат.

Теперь, с другой стороны, с моим кодом я делаю точно такой же запрос конечной точки, и я пытался повторить запрос дважды, и оба раза я получаю точно такой же результат с waiting => true. Я даже попробовал следующее:

foreach($segments as $index => $segment) {
    $segments[$index]['contacts'] = $this->ac->get_contacts(array(), $segment['id'], 'desc', 1, 30, 0);

    while($segments[$index]['contacts']->meta->waiting == true) {
        usleep(250000);
        $segments[$index]['contacts'] = $this->ac->get_contacts(array(), $segment['id'], 'desc', 1, 30, 0);
    }
}

Но даже в этом случае он продолжает запрашивать вечно, и результат никогда не меняется, и в итоге я получаю ошибку 504.

Теперь мой главный вопрос: как это возможно, что результат одной и той же конечной точки варьируется между этими двумя способами получения информации, и я пропускаю какой-то параметр или что мне нужно для того, чтобы повторить то же поведение, что и Почтальон чтобы получить информацию?

Api-Token тот же, конечная точка та же.

...