身份验证

介绍

V2 API需要一个访问令牌来验证请求。你有两种选择:

  • 个人访问令牌,直接与您绑定,是开始使用API的最快方式。
  • 实现一个完整的OAuth2身份验证流程,允许其他人使用您的Harvest集成。bob客服端下载

个人访问令牌

对象中创建个人访问令牌来访问API开发人员部分的Harvest bob客服端下载ID。在创建它之后,您将获得一个随机令牌和您的帐户id列表。

当您想要编写自己的脚本来使用我们的API时,个人访问令牌是首选方法。个人访问令牌的典型用例是用于构建自定义报告、在不同帐户之间同步数据或自动执行手动执行时会花费很长时间的任务的脚本。

个人访问令牌取代了我们v1 API中使用的基本身份验证方法,因为这更安全。在开发人员部分,您将看到所有个人访问令牌的列表,它们最后一次使用的时间,并且您可以在必要时轻松撤销它们。

一旦生成,个人访问令牌就可以用于访问API,方法是在授权标头中提供令牌,或者在查询字符串中包含令牌。每个请求都需要您的帐户ID,因为您可以使用此个人访问令牌访问您的任何Harvest或Forecast帐户。bob客服端下载

头部认证举例

旋度- h“授权:持票人ACCESS_TOKEN美元- h“bob客服端下载Harvest-Account-Id:ACCOUNT_ID美元- h“用户代理:MyApp (yourname@example.com)”https://api.bob客服端下载harvestapp.com/v2/users/me

查询字符串认证示例

旋度- h“用户代理:MyApp (yourname@example.com)”“https://api.bob客服端下载harvestapp.com/v2/users/me?access_token=ACCESS_TOKEN美元&account_id =ACCOUNT_ID美元

OAuth2应用程序

如果您对构建其他用户可以使用的集成感兴趣,则需要注册一个OAuth2应用程序,也称为OAuth2客户端。方法创建应用程序开发人员部分,您将被要求提供一bob客服端下载些信息:

  • 的名字您的应用程序的名称。
  • 重定向URL- URL在你的集成;默认情况下,成功的身份验证将被重定向到。
  • 多账户你的集成支持多用户帐户访问还是只使用一个认证帐户。
  • 产品-要求的访问范围;可以是收获,预测或两者兼有。bob客服端下载建议选择集成工作所需的最小范围。

OAuth2授权流程

对于服务器端应用程序

我们使用代码流程用于服务器端授权。要启动授权流程,需要将用户重定向到以下URL:

https://id.getbob客服端下载harvest.com/oauth2/authorize?client_id= {CLIENT_ID} &response_type =代码

这个URL允许用户在Harvest ID上进行身份验证,并允许他们根据您的OAuth2应bob客服端下载用程序设置和他们的选择授权访问他们的帐户。

该端点接受其他参数:

  • 状态-(可选)用于传递重定向回应用程序时将发送回您的任何值。
  • redirect_uri-(可选)默认的重定向URL可以在这里进一步定制,如果需要,但需要开始重定向URL注册与您的应用程序。

成功授权后,用户将被重定向回注册OAuth2应用程序时指定的重定向URLredirect_uri你提供的。将附上这些参数:

  • 代码-一个授权代码,您将必须交换一组刷新和访问令牌。您将能够使用此访问令牌代表用户访问其帐户。
  • 状态属性的原始值状态在授权开始时传递的参数。
  • 范围-包含一个用空格分隔的字符串列表,描述被授予的访问范围。看到作用域部分作进一步说明。

获得授权码后,你可以用它换取一组访问和刷新令牌:

旋度- x帖子- h“用户代理:MyApp (yourname@example.com)”- d“代码=AUTHORIZATION_CODE美元- d“client_id =美元CLIENT_ID- d“client_secret =CLIENT_SECRET美元- d“grant_type = authorization_code”“https://id.getbob客服端下载harvest.com/api/v2/oauth2/token”

回应:

“access_token”“{ACCESS_TOKEN}”“refresh_token”“{REFRESH_TOKEN}”“token_type”“持票人”“expires_in”1209600

当您的访问令牌即将过期时,您可以使用刷新令牌获得一个新的访问令牌:

旋度- x帖子- h“用户代理:MyApp (yourname@example.com)”- h“接受:application / json”- d“refresh_token =REFRESH_TOKEN美元- d“client_id =美元CLIENT_ID- d“client_secret =CLIENT_SECRET美元- d“grant_type = refresh_token”“https://id.getbob客服端下载harvest.com/api/v2/oauth2/token”

回应:

“access_token”“{NEW_ACCESS_TOKEN}”“refresh_token”“{REFRESH_TOKEN}”“token_type”“持票人”“expires_in”1209600

客户端应用程序

我们使用隐式拨款流程用于客户端授权。这些典型的应用程序完全运行在浏览器上,并向我们的API发出跨源请求。不同之处在于,您将获得一个可以立即使用的访问令牌。

如果有后端服务器可用,建议使用代码流程,因为它更安全,而且访问令牌永远不会被浏览器看到。

要启动授权流,请将用户重定向到以下URL:

https://id.getbob客服端下载harvest.com/oauth2/authorize?client_id= {CLIENT_ID} &response_type =令牌

这个URL允许用户在Harvest ID上进行身份验证,并允许他们根据您的OAuth2应bob客服端下载用程序设置和他们的选择授权访问他们的帐户。

该端点接受其他参数:

  • 状态-(可选)用于传递重定向回应用程序时将发送回您的任何值。
  • redirect_uri-(可选)默认的重定向URL可以在这里进一步定制,如果需要,但需要开始重定向URL注册与您的应用程序。

成功授权后,用户将被重定向回注册OAuth2应用程序时指定的重定向URLredirect_uri你提供的。将附上这些参数:

  • access_token- Access Token可用于代表用户验证请求的Token。
  • token_type-永远都是持票人
  • expire_in-time,直到令牌过期。
  • 状态属性的原始值状态在授权开始时传递的参数。
  • 范围-包含一个用空格分隔的字符串列表,描述被授予的访问范围。看到作用域部分作进一步说明。

作用域和帐户访问

个人访问令牌具有所有默认为范围,因此您可以完全访问您的所有帐户。对于OAuth2应用程序,它可以根据您选择的选项和用户可能给予您的授权而变化。

范围可以包含以下一个或多个值:

  • bob客服端下载收获:{ACCOUNT_ID}-获取bob客服端下载用户授予访问权限的帐户ID。
  • 预测:{ACCOUNT_ID}-用户授权访问的预测帐户ID。
  • bob客服端下载收获:-用户授予访问他们所有Harvest账户的权限。bob客服端下载
  • 预测:-用户允许访问他们所有的Forecast账户。
  • 所有-用户授予访问他们所有帐户的权限。

如果你注册的应用只需要访问一个帐户,用户将选择授权哪个帐户,你也只会得到一个范围bob客服端下载收获:{ACCOUNT_ID}预测:{ACCOUNT_ID},这取决于您选择使用的产品。

如果你的应用程序可以使用多个帐户,你可以得到这些范围的任何组合,这取决于用户选择授权什么。使用该列表或使用Harvest IDbob客服端下载账户端点找出哪些帐户可以访问:

得到https://id.gethabob客服端下载rvest.com/api/v2/accounts

示例请求(注意,帐户ID不是必需的):

旋度“https://id.getbob客服端下载harvest.com/api/v2/accounts”- h“授权:持票人ACCESS_TOKEN美元- h“用户代理:MyApp (yourname@example.com)”

示例响应:

“用户”“id”1“first_name”“阿尔伯特”“last_name”“Llop”“电子邮件”“albert@example.com”},“账户”(“id”10254“名称”斯特林-库珀广告公司“产品”“bob客服端下载收获”},“id”88888“名称”“Iridesco”“产品”“预测”},“id”88903“名称”斯特林-库珀广告公司“产品”“预测”

还有问题吗?我们很乐意帮忙!

联系我们
Baidu
map