Tower API 是提供给 Tower Pro 用户的一项专属服务,您可以通过 API 在其他平台上创建、更改或删除相关信息,便于集成 Tower 到您的系统中。
Tower API 文档部署在 GitHub Page 上,对于文中出现的错误我们非常欢迎您进行反馈,您可以创建 issue 或 pull request 进行更正。
- 创建 Tower API
 
- 进入你的 Tower 团队,点击左上方团队名称。
 - 选择应用中心,可以看到 Tower API。
 - 选择创建新应用。
 - 输入名称和回调地址,Scopes 可以留空。
 - 创建成功后,可以看到多出来的应用 ID和私钥,他们就是后面提到的 
client_id和client_sercet。 
回调地址测试时可以使用
urn:ietf:wg:oauth:2.0:oob,开发者应该设置自己的回调地址,例如https://www.example.com/oauth2/callback,稍后可以看到回调地址的具体作用。
- 尝试第一次授权
 
推荐使用 Postman 进行尝试
- 自动授权
 
准备工作:
- 需要将 
https://www.getpostman.com/oauth2/callback添加到创建应用时候的回调地址中。 
开始配置:
在填写完 Client ID 和 Client Secret 及其他相关信息后,点击 Request Token 按照提示流程,就可以完成整个授权流程。
- 发送第一个请求
 
通过前面的步骤拿到了 Access Token Key: Authorization Value: Bearer
Access Token
- 客户端:
 
- 当用户点击登录时候,弹出浏览器窗口访问
 
https://tower.im/oauth/authorize?client_id={client_id}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code
注意,在这里没有替换 redirect_uri,开发者在使用中一定要记得替换。
- 授权完成后,会调用回调地址,此时需要截取浏览器中的重定向,获取回调携带的授权码。
 
例如你的回调地址是
https://www.example.com/oauth2/callback,在授权成功后会调用https://www.example.com/oauth2/callback?code=authorizationcode
- 拿到授权码后
 
POST https://tower.im/oauth/token
参数
| 名称 | 类型 | 描述 | 
|---|---|---|
client_id | 
string | 
应用 ID | 
client_secret | 
string | 
私钥 | 
code | 
string | 
客户端传来的 Authorization Code | 
grant_type | 
string | 
此处填写为 authorization_code | 
redirect_uri | 
string | 
一定要和之前填写的回调地址相同 | 
- 使用 Tower API 🎉。
 
每一个 Token 默认在 2 小时后到期,此时需要用户进行刷新,同时您也需要注意 API 返回的 expires_in 数据,确保代码对过期时间改变后能够自动做出应对。
POST https://tower.im/oauth/token
Headers
| 名称 | 类型 | 描述 | 
|---|---|---|
Authorization | 
string | 
此处应该填写为 Bearer + access token,例如:Bearer d4e949df783404f22e882430158f3b0440b608709d833f9b981e9a96b850f05c | 
Parameters
| 名称 | 类型 | 描述 | 
|---|---|---|
client_id | 
string | 
应用 ID | 
client_secret | 
string | 
私钥 | 
grant_type | 
string | 
此处填写为 refresh_token | 
redirect_uri | 
string | 
一定要和之前填写的回调地址相同 | 
refresh_token | 
string | 
refresh_token 的值 | 
Status: 200 OK
{
    "access_token": "d4e949df783404f22e882430158f3b0440b608709d833f9b981e9a96b850f05c",
    "token_type": "bearer",
    "expires_in": 7199,
    "refresh_token": "c426d5ab6a211310df088c77b36b38592f6752d5238f291b79174d93f7dc2ed5",
    "created_at": 1523420694,
    "email": "[email protected]"
}Tower API 的网址为:
https://tower.im/api/v1
API 使用 OAuth2.0 进行认证,Access Token 是全局唯一接口调用凭据,开发者调用各接口时都需使用 Access Token,请妥善保存。Access Token 的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的 Access Token 失效。
您在获取后,将 Access Token 添加到 API 的 Headers 中,从而确保能够获得正确的数据。
更多关于 OAuth2.0 的信息可以在这里查看和了解。
获取当前用户在团队中的信息
GET https://tower.im/api/v1/teams/{team_id}/member
Headers
| 名称 | 类型 | 描述 | 
|---|---|---|
Authorization | 
string | 
此处应该填写为Bearer access_token | 
部署用于 OAuth Token 的服务器(推荐)。
服务器不是必须的,但我们极力推荐开发者将私钥部署在服务器上,避免客户端代码中携带私钥而造成安全隐患。





