izucken / bitrix24-rest-client
Bitrix24 REST API客户端包,包含验证和其他功能
Requires
- php: ^7.0
- ext-json: *
- guzzlehttp/guzzle: ~6.0
- psr/log: ^1.1
Requires (Dev)
- monolog/monolog: ^2.0
Suggests
- ext-memcached: You know it
- monolog/monolog: Allows more advanced logging of the application flow
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”过滤参数中使用