问题标签 [clio-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clio-api - Matters.json 日期范围过滤器
Clio APIV4 文档对我在对 things.json 的调用中为 open_date 字段创建日期范围过滤器的预期内容不是很清楚。有人可以就过滤器的预期内容给我一些指导,比如在 2019 年 1 月 1 日至 2019 年 1 月 15 日之间打开的所有事项的范围内?我也看不到日期是否应为 ISO-8601 时间戳。
clio-api - 为 CLIO API“联系人”端点使用 custom_file_ids[] 查询参数时正确的多 ID 语法
custom_file_ids[]
使用查询参数在 CLIO API 联系人结果集中指定多个字段(但不是全部)的正确 API 语法是什么?我需要指定多个自定义字段。我可以让它适用于单个领域,但不能同时适用于多个领域。
具体来说,如何指定和分隔多个字段?我尝试了以下方法:
https://app.clio.com/api/v4/documentation上的 API 文档没有提及它所期望的列表语法。
下面是我使用一个简单的逗号分隔列表尝试的一个特定 API 调用(包括实际的 URL 编码调用和解码的调用),但它只返回列表中第一个 ID 的自定义字段数据——而不是第二。如果我将 ID 列表括在任何类型的括号中(如上所述),端点将返回 404 错误。
migration - 是否有任何从 v2 迁移到 v4 clio api 的迁移文档?
由于 v2 clio api 现在已弃用,是否有任何关于从 v2 迁移到 v4 api 的文档?
clio-api - API 和 Clio 管理
我正在尝试为Clio API实现 OAuth 流程。在 OAuth 过程中,它会将我发送到 Clio Manage 登录页面,但我无法登录。同时,我可以使用相同的凭据登录https://eu.app.clio.com/ 。
对于已经与 Clio 进行集成的人来说,问题是:您使用的是试用帐户还是付费帐户?我不确定我是否需要付费帐户才能进行 Clio API 集成(Clio 管理登录)。我将我的问题发送给 Clio 支持,但我没有太多时间,想在这里问同样的问题......
java - 将文档标记为完全上传的 API 时出现 Clio 错误
实际上,我正在尝试在特定问题上将文档上传到 Clio。但是,当我将文档标记为已完全上传时,我遇到了错误。以下是详细信息
邮政:
修补
当我通过邮递员(不同的文件)尝试它时,我在同一事件中收到以下消息:
你能告诉我我做错了什么吗?
clio-api - 您如何返回选项列表选项为空的所有事项
是否可以返回特定选项列表值为空的所有事项记录?
我尝试了以下方法:
我也尝试将其设置为空白。api 只是返回一个空集。
我在这里先向您的帮助表示感谢。
clio-api - 查询 Clio API 以获取自定义整数字段不为空的所有事项
我正在尝试查询 Clio API 以了解自定义整数字段不为空的所有事项。
Clio 的 API 文档中似乎没有任何内容涉及此用例。此外,文档似乎在可用运算符的描述中有错字。(https://app.clio.com/api/v4/documentation#operation/Matter#index)。该文档列出了以下比较运算符:"="
"<"
">"
"<="
">="
. 但我不能"="
上班,只能"=="
。
以下是我尝试过的查询和结果:
https://app.clio.com/api/v4/matters.json
此查询按预期工作,返回 200 个事项(页数限制)。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==87146433
此查询按预期工作,返回匹配的事项。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==21
此查询按预期工作,返回两个问题。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]=21
注意=
赋值运算符。这将返回一个争论错误:{'type': 'ArgumentError', 'message': 'An invalid argument was provided: The operator is not supported for the given value type or the value is empty'}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==[<=50, >=5]
此查询无法返回两条记录。它不返回错误。注意==
比较运算符。它不返回数据或错误,只返回一个空数据字段:{'meta': {'paging': {}, 'records': 0}, 'data': []}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]=[<=50, >=5]
这将返回一个争论错误:{'type': 'ArgumentError', 'message': 'An invalid argument was provided: The operator is not supported for the given value type or the value is empty'}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]>=0
此查询返回模糊错误:{'error': {'type': 'InternalServiceError', 'message': 'Something went wrong.'}}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]<=0
此查询返回模糊错误,{'error': {'type': 'InternalServiceError', 'message': 'Something went wrong.'}}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==null
注意==
比较运算符。此查询不返回数据或错误:{'meta': {'paging': {}, 'records': 0}, 'data': []}。'https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==NULL'
此查询不返回数据或错误:{'meta': {'paging': {}, 'records': 0}, 'data': []}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]<=99999999
这个查询返回一个模糊的错误,{'error': {'type': 'InternalServiceError', 'message': 'Something went wrong.'}}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]=[<=99999999, >=5]
注意=
赋值运算符。此查询返回:{'type': 'ArgumentError', 'message': '提供了无效参数:给定值类型不支持运算符或值为空'}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==
注意==
比较运算符。此查询返回{'type': 'ArgumentError', 'message': 'An invalid argument was provided: The operator is not supported for the given value type or the value is empty'}。https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]=
注意=
赋值运算符。此查询返回{'type': 'ArgumentError', 'message': 'An invalid argument was provided: The operator is not supported for the given value type or the value is empty'}。
对于自定义整数字段不为空的所有问题,我将不胜感激有关查询 Clio API 的任何建议。
谢谢你。
c++ - 此 OAuth2 代码在我的 PC 中获得授权但在客户的 PC 中未获得授权的任何原因?
我正在尝试进行身份验证以访问 Clio API。在 Windows 中使用 Qt 5.15.2。
当前的源代码可以在我的电脑上运行。我可以使用经过身份验证的 QOAuth2AuthorizationCodeFlow 对象来请求 API 方法。稍后再详细介绍。
这是类声明:
这是类定义:
如您所见,我基本上忽略了重定向 URL 并使用 127.0.0.1:XXXXX,其中 XXXXX 是分配的 QOAuthHttpServerReplyHandler 决定绑定和侦听的任何端口。
我正在使用这样的类:
现在,调用 caClio->authorize() 后,默认浏览器打开,然后我按照那里的授权过程,最终重定向到http://127.0.0.1:XXXXX/?code=ZA0EekH9zL0hJt5WcOYs&state=dpfEqPxM(代码和状态不同每次,当然)并显示通常的消息:收到回调。随意关闭此页面。
到目前为止,对于我的 PC 和客户的 PC,一切都一样。
在我的 PC 中,达到了 on_authSuccess()。我什至可以像这样显示授权令牌:
但是在我客户的 PC(我没有本地访问权限,顺便说一句)中,没有达到 on_authSuccess(),我不知道为什么。
关于我应该做什么的任何建议?
最后的一些细节:
- 没有防火墙相关的问题。客户也会在他们的浏览器中收到“收到回调”消息。
- 在我的 PC 中到达 on_authSuccess() 后,Qt Creator 的应用程序输出显示以下调试消息:qt.networkauth.oauth2 : Unexpected call(我无法弄清楚原因,但它也不影响授予状态)。
clio-api - Clio webhook 自定义字段
我开发了自己与 Clio 的集成。我们有很多使用 Clio 应用程序的客户。我想要的是将联系人与我们的应用程序同步,并实时了解联系人模型中的更改(创建、删除、更改)。所以我们决定使用 webhook。
Webhooks 效果很好,我们喜欢它,但有一个小问题。我们有很多使用 Clio 的客户,也有很多即将到来的更改。
问题是我们无法识别哪个 webhook 来自哪个用户进行了更改。所以我的问题是 - 是否可以创建一些自定义字段,如“clio_profile_id”来获取 clio 用户 ID?你可以看到我附上的截图。很多字段,但没有字段可以识别用户。
我的意思是——当您第一次在某些应用程序中创建 webhook 时,可以创建“自定义字段”,这个自定义字段将显示在每个 webhook 中。例如,请参见截图。
我在 API 文档https://app.clio.com/api/v4/documentation中没有找到任何关于此的内容。
node.js - 从节点流式传输并在 javascript 客户端上生成 blob 的文件要大得多且已损坏
我正在使用 Clio API,这是一个第三方 API,具有一些基于云的文档存储。我希望我们的用户从他们的 API 下载视频/音频文档,但是由于它的设计,我必须使用我的 node.js 服务器作为代理来绕过 CORS 限制。
流程是:
- 用户请求将文档下载到我的服务器
- 我的服务器向 API 发出请求以下载文档
- 我的服务器将响应流式传输到客户端
因为文档可能很大(1GB+),我试图将我的服务器获取的文件流式传输到客户端。
问题是客户端收到的文件已损坏并且比实际文件大。以下是我目前提出请求的方式(注意:我们通常使用 axios,但我不确定如何使用该包执行下面的操作,所以现在我使用 request 包进行概念验证):
对于大小约为 220kb 的 MP4 文件:
然后在客户端我们收到如下响应:
令人困惑的是,生成的 blob 是这样的:
大小几乎是文件实际大小的两倍,我不明白为什么。此外,从这里下载和播放 mp4 是不可能的,因为 mp4 文件已损坏并且无法播放。这特别奇怪,因为如果我决定将服务器请求通过管道传输到服务器上的文件,如下所示:
生成的“test.mp4”大小正确,播放正常。
问题似乎是专门将文件流式传输到客户端。当我尝试查看到达客户端的原始数据时(通过 response.text()),我看到的示例如下:
这似乎是 UTF8 编码的数据,带有一些 - 我猜 - 替换字符。我认为这可能是膨胀 blob 大小并损坏 mp4 文件的原因。
会发生什么?