nikserg/bitrix24-rest-client

Bitrix24 REST API客户端包,增加了验证和其他功能

1.1.7 2022-07-21 13:56 UTC

This package is auto-updated.

Last update: 2024-09-21 18:54:53 UTC


README

决策

对于本项目,决定放弃服务器端API批处理功能。

支持的功能

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

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

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

支持的端点
  • CRM线索CRUD
  • CRM状态系统CRUD
  • 常用联系人搜索
  • 历史用户CRUD
  • 历史部门CRUD

用法

$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.*无法通过web hooks或具有完整权限的rest应用访问。
  • 在某些情况下,API将数组值意外地转换为TRUE。
  • 某些字段类型,如多选整数字段,在没有选择时可能等于false,但此库不允许您提供布尔值。这些值也无法通过仅提供空数组、false、null或它们的任何组合来取消设置。
  • 有时列表响应不符合以下描述,此库旨在纠正这一点,但可能并非所有情况都得到涵盖
  • 即使未指定,具有正则表达式规则的字段隐式地被认为是“必需的”
  • USERFIELD正则表达式规则不会检查有效性,无效的正则表达式始终通过

提示

  • “Id未定义”错误通常是请求格式错误的信号。
  • 要删除特定的多字段值对象,请传递id和空字符串或null作为其值。

文档片段

更新方法
多字段(crm_multifield)

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

通用列表方法

可用的列表参数'fieldName'取决于特定实体。可能有一些未记录的衍生字段可用于过滤,如HAS_*FIELD*。通用列表始终按每页50个项目分页。

  • 根据文档,某些列表可能只接受部分列表参数。
  • 列表参数中的字段可能被任意忽略。
  • 某些列表方法可能需要所需的过滤器字段。
列表方法参数

这些参数包含在GenericListFilter类中

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

相当直接。

'SELECT' => [ ... fieldName ]

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

一些特殊选项

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

'start' => int

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

某些端点还提供“导航”参数,这似乎做的是同样的事情??

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

'filterType'的可能值

'=' - 等于(似乎是默认值)

'!' - 不等于

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

'%' - 将值变为通配符,例如 '%value%'

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

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

列表响应

通常包含字段

'result' - 实际过滤结果集,分页列表通常最多50个结果

'total' - 可能的过滤结果总数

'next' - 分页列表的可选字段,用于 'START' 过滤参数