首先,在任何人暗示之前,我并不是在寻求特定于 API 的帮助。我在咨询Active Campaign 的 API时遇到了一个奇怪的问题。
我正在使用一个特定的端点,即GET contacts
端点。通常我对此端点没有任何问题,但在我使用segmentid
get 参数的特定情况下,我与信息不一致。
我正在使用两种方法来访问 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也是一样的。