快速开始

功能介绍

CODING 提供了丰富的 API 接口,使得用户可以方便地实现将 CODING 与许多服务的数据交互,功能对接。在 CODING 的开放生态当中注册应用无需审核即可使用授权,采用 OAuth 2.0 协议认证。您也可以采用个人访问令牌使用 OPEN API。

OAuth 认证

创建 CODING 应用

  1. 点击【个人设置】->【开放生态】->【创建应用】,注册需要接入 CODING 的应用。

  1. 在创建应用页面,填写接入的应用信息:
  • 应用名称、应用主页及回调地址为必填项;
  • 其中回调地址是用户授权后,CODING 回调到应用,并且回传授权码的地址;
  • 如果没有上传图标将自动生成应用图标。

填写完毕后,点击【创建应用】。

  1. 应用创建完成后,在应用详情页,会生成 Client ID 和 Client Secret ,保存以便后续认证使用。

用户授权

  1. 访问以下链接,进入到授权登录页面:

https://{name}.coding.net/oauth_authorize.html?client_id={client_id}&redirect_uri={redirect_uri}&response_type=code

上述链接参数说明如下:

  • name 即团队域名前缀。
  • client_id 即应用详情页生成的 Client ID;
  • redirect_uri 就是回调地址;

带入参数后的示例如下:

https://anywhere.coding.net/oauth_authorize.html?client_id=ccb76756457bb9c456ec53cf6b985309&redirect_uri=http://127.0.0.1:9002/api/oauth/callback&response_type=code

  1. 在授权登录页面,输入用户名帐号密码。

跳转至授权页面后,点击授权。

授权通过后,CODING 会将授权码回传给应用在 CODING 注册的回调地址,保存授权码 code 即可。

  • 上图示例中 CODING 回调了地址:

http://127.0.0.1:9002/api/oauth/callback?code=7923f69445119400c12e1a70b027a97a

  • 上图示例中 CODING 传回了授权码 code:

7923f69445119400c12e1a70b027a97a

授权通过后,还可以在应用详情页面看到该应用的用户数变为 1。

获取 access_token

获取到授权码后,向 CODING 的 Token Endpoint 发送请求,获取 access_token。

Token Endpoint 请求链接如下:

http://{团队名称}.coding.net/api/oauth/access_token?client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code&code={code}

上述链接参数说明如下:

  • 团队名称就是团队登录域名中的名称;
  • client_id 即在上文应用详情页生成的 Client ID;
  • client_secret 为 Client Secret ;
  • code 就是上一步得到的授权码;

带入参数后的示例如下:

http://anywhere.coding.net/api/oauth/access_token?client_id=ccb76756457bb9c456ec53cf6b985309&client_secret=db29d47d60995a1ab1ae8e7aa78360bdfb34d89c&grant_type=authorization_code&code=7923f69445119400c12e1a70b027a97a

访问该链接后,CODING 会返回如下格式值,保存 access_token:

{"access_token":"xxxxxx", "refresh_token": "xxxxxx",  "team":"xxxxxx"  "expires_in": "xxxxxx" }

返回值示例:

访问资源

获取到 access_token 之后,就可以访问受保护的资源了。

如下是获取查询项目信息示例:

访问地址:https://e.coding.net/open-api

Accept: application/json

输入示例:

{
    "Action":"DescribeOneProject",
    "AccessToken":"8de58a21646f43699196c42a30d77770",
    "ProjectId":2
}    

输出示例:

{
  "Response": {
    "Project": {
      "Name": "coding-demo",
      "Id": 2,
      "Type": 2,
      "DisplayName": "示例项目",
      "Icon": "https://codehub.cn/7f571.png",
      "Description": "CODING 示例项目",
      "CreatedAt": 1572933083682,
      "MaxMember": 0,
      "TeamId": 12,
      "UserOwnerId": 0,
      "IsDemo": true,
      "Archived": false,
      "StartDate": 0,
      "UpdatedAt": 1572933083682,
      "TeamOwnerId": 0,
      "EndDate": 0,
      "Status": 1
    },
    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
  }
}

个人令牌认证

获取个人令牌

点击右上角的【个人设置】>【访问令牌】>【新建令牌】,勾选相关权限后会生成「个人访问令牌」。若刷新页面令牌会消失,需输入账号密码后重新生成。

访问资源

获取个人访问令牌后便可以访问受保护的资源了。

如下是获取查询项目信息示例:

访问地址:https://e.coding.net/open-api

Accept: application/json

输入示例:

{
    "Action":"DescribeOneProject",
    "Authorization":"d0544956253e82fa2ba780a52487500017b49bf9",
    "ProjectId":2
}    

输出示例:

{
  "Response": {
    "Project": {
      "Name": "coding-demo",
      "Id": 2,
      "Type": 2,
      "DisplayName": "示例项目",
      "Icon": "https://codehub.cn/7971.png",
      "Description": "CODING 示例项目",
      "CreatedAt": 1572933083682,
      "MaxMember": 0,
      "TeamId": 12,
      "UserOwnerId": 0,
      "IsDemo": true,
      "Archived": false,
      "StartDate": 0,
      "UpdatedAt": 1572933083682,
      "TeamOwnerId": 0,
      "EndDate": 0,
      "Status": 1
    },
    "RequestId": "ae8e2d5f-569b-443e-8c61-440ea3a7562a"
  }
}
文档是否对您有用?
感谢反馈有用
感谢反馈没用