如何通过Jira插件Tempo REST API(v4)获取成员邮箱?
解决Tempo API无法获取成员邮箱的问题
问题背景
Tempo REST API(Jira插件)无法直接返回成员邮箱,仅能返回指向Jira参与者信息的URL,且该URL仅管理员账号可见邮箱内容。
可行解决方案
方案1:通过Jira REST API补充获取邮箱
利用Tempo返回的用户accountId(Jira用户唯一标识),调用Jira API查询完整用户信息以获取邮箱,步骤如下:
- 确保授权令牌拥有Jira API的
read:user:jira权限 - 从Tempo API返回的用户数据中提取
accountId - 调用Jira的
/rest/api/3/user?accountId={accountId}接口,响应结果中的emailAddress字段即为邮箱
方案2:提升账号权限(谨慎使用)
将调用API的账号升级为Jira管理员权限,直接访问Tempo返回的参与者URL即可获取邮箱,但此方案会带来权限过大的安全风险,仅适合内部管理场景。
代码示例(结合Jira API获取邮箱)
import os import requests from dotenv import load_dotenv from tempoapiclient import client_v4 load_dotenv() # Tempo 配置 AUTH_TOKEN = os.environ.get('AUTH_TOKEN') tempo_client = client_v4.Tempo(auth_token=AUTH_TOKEN) # Jira API 配置(替换为你的Jira域名) BASE_URL_JIRA = 'https://your-jira-domain.atlassian.net' def get_user_email(account_id): """通过Jira API获取用户邮箱""" url = f"{BASE_URL_JIRA}/rest/api/3/user?accountId={account_id}" headers = {'Authorization': f'Bearer {AUTH_TOKEN}'} response = requests.get(url, headers=headers) if response.status_code == 200: return response.json().get('emailAddress') return None # 示例:获取团队成员并补充邮箱(替换为你的团队ID) team_members = tempo_client.get_team_members(team_id=123) for member in team_members: user_info = member['user'] email = get_user_email(user_info['accountId']) print(f"用户: {user_info['displayName']}, 邮箱: {email}")
注意事项
- 调用Jira API需确认令牌权限覆盖用户信息读取
- 云版Jira需确保账号已配置正确的API访问权限
- 遵守Atlassian的API速率限制,避免频繁请求
内容的提问来源于stack exchange,提问作者Vadim Rudenkov
相关产品推荐
相关产品推荐

