You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitrix24 Webhook如何获取数组中的工作电话与座机数据

Bitrix24 Webhook提取联系人工作电话/座机数据问题

我在Bitrix24里通过Webhook获取联系人数据,电话字段是包含多个子数组的数组,不知道怎么从中提取工作电话或座机的数据。我用SELECT[]参数搭配PHONE来获取电话数据,试过PHONE[0]但没用,求帮忙解析结构,谢谢!

返回的电话字段结构如下:

[PHONE] => Array
(
    [0] => Array
        (
            [ID] => 45545
            [VALUE_TYPE] => WORK
            [VALUE] => +351911111111
            [TYPE_ID] => PHONE
        )

    [1] => Array
        (
            [ID] => 45547
            [VALUE_TYPE] => MOBILE
            [VALUE] => +351910000000
            [TYPE_ID] => PHONE
        )

    [2] => Array
        (
            [ID] => 45549
            [VALUE_TYPE] => HOME
            [VALUE] => +351220000000
            [TYPE_ID] => PHONE
        )

    [3] => Array
        (
            [ID] => 45551
            [VALUE_TYPE] => FAX
            [VALUE] => +351210000000
            [TYPE_ID] => PHONE
        )

    [4] => Array
        (
            [ID] => 45553
            [VALUE_TYPE] => PAGER
            [VALUE] => +351230000000
            [TYPE_ID] => PHONE
        )

    [5] => Array
        (
            [ID] => 45555
            [VALUE_TYPE] => MAILING
            [VALUE] => +351240000000
            [TYPE_ID] => PHONE
        )

    [6] => Array
        (
            [ID] => 45557
            [VALUE_TYPE] => OTHER
            [VALUE] => +351250000000
            [TYPE_ID] => PHONE
        )
)

解决方案

1. 先搞懂数据结构

返回的PHONE是一个数组,每个子数组里的字段含义:

  • ID:这条电话记录的唯一标识
  • VALUE_TYPE:电话类型,比如WORK是工作电话、MOBILE是手机、HOME是住宅电话
  • VALUE:实际的电话号码
  • TYPE_ID:固定为PHONE,表示这是电话字段

2. 提取工作电话的正确方式

你不能直接用PHONE[0]拿工作电话,因为数组索引是按添加顺序排的,工作电话不一定在第0位。正确做法是遍历整个PHONE数组,筛选出VALUE_TYPE为WORK的项:

PHP示例代码

// 假设$contact是从Webhook获取到的联系人完整数据
$workPhones = [];
if (isset($contact['PHONE']) && is_array($contact['PHONE'])) {
    foreach ($contact['PHONE'] as $phoneItem) {
        if ($phoneItem['VALUE_TYPE'] === 'WORK') {
            $workPhones[] = $phoneItem['VALUE'];
        }
    }
}

// 输出所有工作电话
print_r($workPhones);

通用逻辑(不管用什么语言)

核心思路都是:

  • 循环遍历PHONE数组的每一个子元素
  • 判断子元素的VALUE_TYPE是否等于WORK
  • 符合条件的就提取VALUE字段

3. 关于SELECT参数的说明

用SELECT[]=PHONE是对的,它会返回所有电话记录。Bitrix24的Webhook不支持直接通过SELECT[]=PHONE[WORK]这种方式筛选,必须拿到完整数组后自己处理。

内容的提问来源于stack exchange,提问作者user2068739

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:23:13