izucken/bitrix24-rest-client

Bitrix24 REST API客户端包,包含验证和其他功能

1.2.9 2020-02-18 13:51 UTC

This package is auto-updated.

Last update: 2024-09-04 21:34:03 UTC


README

决策

该项目决定放弃服务器端API批处理功能。

支持的功能

所有功能都通过bitrix\rest\client\Bitrix24接口支持。现有实现包括web hook客户端和oauth自授权客户端,以及一些实用装饰器。

这些是通用包装器,所以您仍然需要了解所有方法和它们的参数,这些参数来自原始文档。

然后是bitrix\endpoint\*类,它们包装客户端以提供额外的便利。

用法

$bitrixClient = new \bitrix\rest\client\OauthAutoLogin(
    $config['bitrix']['uri'],
    new \bitrix\rest\OauthFullCredentials(
        $config['bitrix']['id'],
        $config['bitrix']['secret'],
        $config['bitrix']['user'],
        $config['bitrix']['pass']
    ),
    new \bitrix\storage\File(__DIR__.'/bitrix.json'),
    new \Psr\Log\NullLogger()
);
$this->bitrixClient->call('app.info');

已知问题

  • 记录的方法crm.*.details.*已记录但不可访问。
  • 在某些情况下,API将数组转换为TRUE,因为它期望布尔值。
  • 某些字段类型,如多选整数字段,在某些情况下,如果没有选择任何内容,则可能等于false,但此库不允许您提供布尔值。在这些情况下,仅通过提供空数组、false、null或它们的任意组合也不能取消这些值的设置。
  • 即使没有指定,具有正则表达式规则的字段也隐式地被视为“必需”。
  • 用户字段正则表达式规则没有进行有效性检查,无效的正则表达式总是通过验证。

提示

  • 要删除特定的多字段值对象,请传递id及其值为空字符串或null。

文档片段

更新方法
多字段(crm_multifield)

如果多字段值中没有指定ID,则将创建新值。如果指定了不存在的ID,则将忽略该值。

通用列表方法

在列表参数中可用的'fieldName'取决于特定实体。可能存在一些未记录的派生字段可用于筛选,例如HAS_*FIELD*。通用列表始终以50个项目分页。

  • 根据文档,特定列表可能只接受部分列表参数。
  • 列表参数中的字段可能被任意忽略。
  • 特定列表方法可能具有必需的筛选字段。
列表方法参数

这些参数被封装在GenericListFilter类中

'ORDER' => [ ... [ fieldName => 'ASC' | 'DESC' ] ]

非常直接。

'SELECT' => [ ... fieldName ]

定义要包含在列表结果中的内容。'ID'或任何其他身份始终被选择。

一些特殊选项

  • '*' - 所有常规非多字段
  • 'UF_*' - 所有用户字段

'start' => int

在之前的列表响应中给出的偏移量,以从该位置继续。必须是50的倍数。

某些端点还提供'navigation'参数,这似乎做的是同样的事情?

'FILTER' => [ ... [ filterType.fieldName => filterValue ] ]

'filterType'的可能值

'=' - 等于(似乎默认为)

'!' - 不等于

'<' '>' '<=' '>=' - 比较操作,适用于字符串

'%' - 将值转换为通配符,如'%value%'

在'filterValue'中使用数组来模拟'IN'条件。

某些列表似乎支持'%'在'fieldValue'中,从而启用自定义通配符,这应由特定实体或其列表方法清楚地说明。

列表响应

通常包括字段

'result' - 实际的筛选结果集,通常对于分页列表最多50个结果

'total' - 可能筛选结果的总数

《'next'》- 可选字段,用于分页列表,应在“START”过滤参数中使用