1

首先,在任何人暗示之前,我并不是在寻求特定于 API 的帮助。我在咨询Active Campaign 的 API时遇到了一个奇怪的问题。

我正在使用一个特定的端点,即GET contacts端点。通常我对此端点没有任何问题,但在我使用segmentidget 参数的特定情况下,我与信息不一致。

我正在使用两种方法来访问 API。其中之一是 Postman,另一个是我使用 Guzzle http 客户端 for 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 错误。

现在我的主要问题是:同一端点的结果怎么可能在这两种获取信息的方式之间有所不同,我是否缺少一些参数或者我需要什么才能复制与 Postman 相同的行为以便获取信息?

Api-Token是一样的,endpoint也是一样的。

4

0 回答 0