概述
Harvbob客服端下载est V2 API是一个REST API允许您以编程方式与您的Harvest帐户交互。bob客服端下载您可以跟踪时间、记录费用、创建项目等等。
API请求
bob客服端下载Harvest要求应用程序验证所有请求OAuth2或个人访问令牌.支持以下HTTP方法:
- 得到
- 帖子
- 补丁
- 删除
当发出GET请求时,URL查询字符串中应该包含参数:
curl https://api.bob客服端下载harvestapp.com/v2/tasks?page=2&per_page=10 \ -H "授权:持有者$ACCESS_TOKEN" \ -H "收获帐户id: $ACCOUNT_ID" \ -H "用户代理:MyApp (yourname@example.com)"
当发出POST或PATCH请求时,参数应该包含在请求体中。请求参数可以格式化为JSON,也可以作为表单数据提交。当以JSON形式提交请求参数时,必须通过application / json
在内容类型
头。
我们还要求每个请求都包含一个用户代理
带有两者的标题:
- 应用程序的名称
- 链接到您的应用程序或电子邮件地址
如果你做错了什么(这样我们就可以在你被屏蔽之前警告你)或做了什么了不起的事情(这样我们就可以祝贺你),我们会使用这些信息与你取得联系。下面是一些可接受的例子用户代理
标题:
用户-代理:Trello (http://trello.com/contact)
用户代理:John’s Harvestbob客服端下载 Integration (john@example.com)
如果你不包括用户代理
头,你会得到一个400错误请求
响应。
JSON
curl -X POST https://api.bob客服端下载harvestapp.com/v2/tasks \ -H "授权:持有者$ACCESS_TOKEN" \ -H "收获帐户id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)"\ - h“application / json内容类型:\ - d”{\“\”:\“我的新任务\“}”
表单数据
curl -X POST https://api.bob客服端下载harvestapp.com/v2/tasks \ -H "授权:持有者$ACCESS_TOKEN" \ -H "收获帐户id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)"\ -d name="我的新任务"
API的反应
bob客服端下载Harvest以JSON格式格式化响应体,并使用HTTP响应代码来指示API请求的成功或失败。以下是您在使用API时可能遇到的HTTP状态码,并简要说明了它们发生的时间。
代码 | 解释 |
---|---|
200 | 你的请求成功了。 |
201 | 完成新对象的创建。它的表示形式将在响应体中返回。 |
403 | 您请求的对象已找到,但您没有执行请求的授权。 |
404 | 您请求的对象找不到。 |
422 | 处理您的请求时发生错误。查看响应体以获得更多信息。 |
429 | 你的请求被限制了。请参阅速度限制部分的详细信息。 |
500 | 服务器出错了。请联系support@getharvebob客服端下载st.com寻求帮助。 |
速度限制
我们有一个API节流阻止超过API速率限制的账户。我们保留调整限制的权利,但它们总是设置得足够高,以允许运行良好的交互程序完成其工作。
- 一般API请求的速率限制为每15秒100个请求.
- 的速率限制报告API请求每15分钟100个请求.
对于仍然需要完善代码的批处理和API开发人员来说,这个节流可能是一个无意的阻碍。稍等片刻,再试一次。由于每次调用都会重置节流阀,因此节流阀将在几分钟内自行抬起,API调用可能会恢复。
当超过速率限制时,Harvest将发送一个HTTP 429状态码bob客服端下载。中指定的,通过Retry-After HTTP报头发送油门解除之前的秒数RFC 2616.
请记得仔细编写应用程序,尽可能进行缓存。在滥用的情况下,你可能会被阻止,不允许进一步的API访问。
约定
当您遇到一个被花括号包围的值时,您应该将其替换为适合您上下文的值。例如,如果Harvest项目的ID是bob客服端下载1234
文档提供了以下URL:
https://api.bob客服端下载harvestapp.com/v2/projects/ {PROJECT_ID}
你可以替换{PROJECT_ID}
使用实际的项目ID,如下所示:
https://api.bob客服端下载harvestapp.com/v2/projects/1234
我们还在示例请求中使用了shell变量(例如。ACCESS_TOKEN美元
).如果你的操作系统支持shell变量,你可以这样设置shell变量:
ACCESS_TOKEN="my-access-token" ACCOUNT_ID="my-account-id" USER_AGENT="MyApp (yourname@example.com)"
然后,您可以通过在它们前面加上a来引用它们$
:
curl -X POST https://api.bob客服端下载harvestapp.com/v2/company \ -H "Authorization: holder $ACCESS_TOKEN" \ -H " collect - account - id: $ACCOUNT_ID" \ -H "User-Agent: $USER_AGENT"
这应该允许您复制/粘贴大多数示例请求,而不需要更改id以外的任何内容。
数据类型
类型 | 例子 | 描述 |
---|---|---|
布尔 | 真正的 |
要么真正的 或假 . |
字符串 | “foo” |
双引号字符序列。 |
整数 | 42 |
非负整数值。 |
小数 | 6.8 |
一个十进制值。支持的精度与字段有关。 |
日期 | “2017-12-31” |
仅包含日期部分的ISO 8601格式字符串。 |
datetime | “2017 - 12 - 31 t14:59:22z” |
ISO 8601格式的字符串,包含UTC日期和时间。 |
时间 | “14:59” “2:59pm” |
包含12小时或24小时时间的字符串,具体取决于为您的帐户配置的时间格式。你可以在设置页面的Harvest帐户或bob客服端下载时钟 属性的公司的API. |
数组 | [1,2,3 . ] |
JSON数组。 |
对象 | {name: "value"} |
JSON对象。 |