Teambition企业内部应用Python开发指南注意:此文章并非搬运,一小部分仅为借鉴 。Teambition提供了API接口,我们可以注册成为开发者,然后通过接口获取Teambition的数据,按照需求的格式保存和分析.
一、准备阶段1.登录Teambition企业账号,要有管理员的权限,点击左上角的菜单按钮,然后点击进入企业的“全部应用”.最后点击“应用商店”

文章插图

文章插图
2.点击“开放平台”,此页面有后期需用的API文档,可以先收藏 。点击“立即创建”

文章插图
3.创建企业内部应用:填写名称和描述4.打开应用凭证和基本信息,获取ID和Secret(F12在代码中可以直接复制)

文章插图
5.打开左侧栏中的“应用开发”--“应用权限”,根据需要勾选6.打开“应用发布”,填写信息,发布 。
二、Python脚本编写1.找到对应的jwt包,https://jwt.io/libraries,下载安装(推荐PyJWT:至少我用没有问题)2.appAccessToken的获取(最重要的一步)
- 因为文档中没有Python实现的任何描述,这里只提供个人写法
from datetime import datetime, timedeltaimport jwtimport requestsimport timefrom Config import getConfig class GetTeamBitionEvents(object):def __init__(self):self.app_id = getConfig('config', 'Get_TB_Data', 'app_id')self.app_secret = getConfig('config', 'Get_TB_Data', 'app_secret')def get_aptoken(self):now_time = int(time.time())expire_time = now_time + 36000# 1 小时后超时token_dict = {'iat': now_time,'_appId': '%s' % self.app_id,'exp': expire_time,}headers = {'typ': 'jwt','alg': 'HS256'# 声明所使用的算法}encoded = jwt.encode(payload=token_dict, key=self.app_secret, headers=headers,algorithm='HS256')# .decode('ascii')return encoded
- 个人习惯将固定的重要数据存放在config文件中,你也可以直接写入字符串
- 文档链接:开放平台文档中心 (teambition.com)
- 主要看六点
- URL:
https://open.teambition.com/api/v3/sfc/create
- Method:POST
- 权限:tb-core:sfc:create
- 请求头
- 查询参数
- 请求体
- URL:
- 有了这些信息,就可以直接上代码了
from __future__ import absolute_import, unicode_literalsimport requests, time, jwtclass GetTeamBitionEvents(object):def __init__(self):self.app_id = ''# 必填self.app_secret = ''# 必填self.company_url = 'https://www.teambition.com/organization/' # 固定self.company_id = ''# 一些API会用到公司IDself.callback_url = self.company_url + self.company_id# 固定self.user_id=''# 一些API会用到个人IDself.auth_url = 'https://account.teambition.com/oauth2/authorize?client_id=' + self.app_id + '&redirect_uri=' + self.callback_url# 固定def get_aptoken(self):now_time = int(time.time())expire_time = now_time + 36000# 1 小时后超时token_dict = {'iat': now_time,'_appId': '%s' % self.app_id,'exp': expire_time,}headers = {'typ': 'jwt','alg': 'HS256'# 声明所使用的算法}encoded = jwt.encode(payload=token_dict, key=self.app_secret, headers=headers,algorithm='HS256')# .decode('ascii')return encodeddef post_proj_type(self,params,object):url = f'https://open.teambition.com/api/v3/sfc/create'app_token = (self.get_aptoken()).replace("\n", "").replace('\r', '')headers = {'Authorization': 'Bearer %s' % app_token,'X-Tenant-Id': '%s' % self.company_id,'X-Tenant-Type': 'organization','X-Operator-Id': self.user_id}return requests.post(url,json=object,params=params, headers=headers)if __name__ == '__main__':tb = GetTeamBitionEvents()projectId=tb.company_id#测试企业-项目管理副本roleId=tb.user_id# 测试角色object={'name':'测试类型'}params={'projectId':projectId}result = tb.post_proj_type(params,object)print(result.json()["result"])
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 属狗的注册公司用什么名字 霸气吉祥的企业名字
- 冰箱制冷效果不好是什么原因
- IOS12未受信任的企业级开发者怎么解决
- 如何解决未受信任的企业级开发者的问题(如何安装未受信任的企业级开发者)
- ipad未受信任的企业级开发者怎么解决(ipad开发者模式)
- 未受信任的企业级开发者怎么设置(未受信任的企业级开发者有危险吗)
- ipad未受信任的企业级开发者怎么打开(软件在ipad上不受信任)
- ios15未信任企业开发者怎么解决(ios15找不到企业信任)
- iphone未受信任的企业级开发者怎么解决
- 未受信任的企业级开发者怎么解决(未受信任的企业级开发者有危险吗)