问题标签 [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.

0 投票
1 回答
153 浏览

clio-api - Matters.json 日期范围过滤器

Clio APIV4 文档对我在对 things.json 的调用中为 open_date 字段创建日期范围过滤器的预期内容不是很清楚。有人可以就过滤器的预期内容给我一些指导,比如在 2019 年 1 月 1 日至 2019 年 1 月 15 日之间打开的所有事项的范围内?我也看不到日期是否应为 ISO-8601 时间戳。

0 投票
1 回答
155 浏览

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 错误。

0 投票
1 回答
75 浏览

migration - 是否有任何从 v2 迁移到 v4 clio api 的迁移文档?

由于 v2 clio api 现在已弃用,是否有任何关于从 v2 迁移到 v4 api 的文档?

0 投票
2 回答
322 浏览

clio-api - API 和 Clio 管理

我正在尝试为Clio API实现 OAuth 流程。在 OAuth 过程中,它会将我发送到 Clio Manage 登录页面,但我无法登录。同时,我可以使用相同的凭据登录https://eu.app.clio.com/ 。

对于已经与 Clio 进行集成的人来说,问题是:您使用的是试用帐户还是付费帐户?我不确定我是否需要付费帐户才能进行 Clio API 集成(Clio 管理登录)。我将我的问题发送给 Clio 支持,但我没有太多时间,想在这里问同样的问题......

0 投票
1 回答
134 浏览

java - 将文档标记为完全上传的 ​​API 时出现 Clio 错误

实际上,我正在尝试在特定问题上将文档上传到 Clio。但是,当我将文档标记为已完全上传时,我遇到了错误。以下是详细信息

邮政:

修补

当我通过邮递员(不同的文件)尝试它时,我在同一事件中收到以下消息:

你能告诉我我做错了什么吗?

0 投票
1 回答
81 浏览

clio-api - 您如何返回选项列表选项为空的所有事项

是否可以返回特定选项列表值为空的所有事项记录?

我尝试了以下方法:

我也尝试将其设置为空白。api 只是返回一个空集。

我在这里先向您的帮助表示感谢。

0 投票
0 回答
113 浏览

clio-api - 查询 Clio API 以获取自定义整数字段不为空的所有事项

我正在尝试查询 Clio API 以了解自定义整数字段不为空的所有事项。

Clio 的 API 文档中似乎没有任何内容涉及此用例。此外,文档似乎在可用运算符的描述中有错字。(https://app.clio.com/api/v4/documentation#operation/Matter#index)。该文档列出了以下比较运算符:"=" "<" ">" "<=" ">=". 但我不能"="上班,只能"=="

以下是我尝试过的查询和结果:

  1. https://app.clio.com/api/v4/matters.json此查询按预期工作,返回 200 个事项(页数限制)。

  2. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==87146433此查询按预期工作,返回匹配的事项。

  3. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==21此查询按预期工作,返回两个问题。

  4. 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'}。

  5. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==[<=50, >=5]此查询无法返回两条记录。它不返回错误。注意==比较运算符。它不返回数据或错误,只返回一个空数据字段:{'meta': {'paging': {}, 'records': 0}, 'data': []}。

  6. 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'}。

  7. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]>=0此查询返回模糊错误:{'error': {'type': 'InternalServiceError', 'message': 'Something went wrong.'}}。

  8. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]<=0此查询返回模糊错误,{'error': {'type': 'InternalServiceError', 'message': 'Something went wrong.'}}。

  9. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==null注意==比较运算符。此查询不返回数据或错误:{'meta': {'paging': {}, 'records': 0}, 'data': []}。

  10. 'https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]==NULL'此查询不返回数据或错误:{'meta': {'paging': {}, 'records': 0}, 'data': []}。

  11. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]<=99999999这个查询返回一个模糊的错误,{'error': {'type': 'InternalServiceError', 'message': 'Something went wrong.'}}。

  12. https://app.clio.com/api/v4/matters.json?custom_field_values[6755854]=[<=99999999, >=5]注意=赋值运算符。此查询返回:{'type': 'ArgumentError', 'message': '提供了无效参数:给定值类型不支持运算符或值为空'}。

  13. 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'}。

  14. 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 的任何建议。

谢谢你。

0 投票
0 回答
155 浏览

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(我无法弄清楚原因,但它也不影响授予状态)。
0 投票
1 回答
69 浏览

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中没有找到任何关于此的内容。

自定义字段示例

0 投票
0 回答
44 浏览

node.js - 从节点流式传输并在 javascript 客户端上生成 blob 的文件要大得多且已损坏

我正在使用 Clio API,这是一个第三方 API,具有一些基于云的文档存储。我希望我们的用户从他们的 API 下载视频/音频文档,但是由于它的设计,我必须使用我的 node.js 服务器作为代理来绕过 CORS 限制。

流程是:

  1. 用户请求将文档下载到我的服务器
  2. 我的服务器向 API 发出请求以下载文档
  3. 我的服务器将响应流式传输到客户端

因为文档可能很大(1GB+),我试图将我的服务器获取的文件流式传输到客户端。

问题是客户端收到的文件已损坏并且比实际文件大。以下是我目前提出请求的方式(注意:我们通常使用 axios,但我不确定如何使用该包执行下面的操作,所以现在我使用 request 包进行概念验证)

对于大小约为 220kb 的 MP4 文件:

然后在客户端我们收到如下响应:

令人困惑的是,生成的 blob 是这样的:

大小几乎是文件实际大小的两倍,我不明白为什么。此外,从这里下载和播放 mp4 是不可能的,因为 mp4 文件已损坏并且无法播放。这特别奇怪,因为如果我决定将服务器请求通过管道传输到服务器上的文件,如下所示:

生成的“test.mp4”大小正确,播放正常。

问题似乎是专门将文件流式传输到客户端。当我尝试查看到达客户端的原始数据时(通过 response.text()),我看到的示例如下:

这似乎是 UTF8 编码的数据,带有一些 - 我猜 - 替换字符。我认为这可能是膨胀 blob 大小并损坏 mp4 文件的原因。

会发生什么?