使用Jira Asset Management API调用报400错误:activationId未提供求助
解决Jira Asset Management API 400错误:activationId is not provided
问题解析
你遇到的400错误是因为Jira Asset Management(原Insight)的object端点要求必须传入activationId参数——这个ID是你的Assets实例的唯一标识,用于关联请求到对应的Assets工作区实例。
解决步骤
1. 获取activationId
有两种方式获取:
- 通过Assets界面:登录Jira Cloud后进入Assets模块,点击右上角齿轮图标→选择「Insight设置」(或「Assets设置」),在实例详情板块中找到并复制
Activation ID。 - 通过API查询:调用
GET /jsm/assets/workspace/{workspaceId}/v1/instance接口,返回的JSON数据里会包含activationId字段。
2. 修改请求代码
将activationId作为查询参数添加到请求URL中,同时确保workspaceId已替换为实际值。修改后的代码如下:
import requests import json import base64 # 替换为你的实际参数 object_id = "<validobjectid>" workspace_id = "<your-workspace-id>" activation_id = "<your-activation-id>" email = "your-email@example.com" api_token = "your-api-token" # 正确编码认证信息 encoded_credentials = base64.b64encode(f"{email}:{api_token}".encode()).decode() url = f"https://api.atlassian.com/jsm/assets/workspace/{workspace_id}/v1/object/{object_id}?activationId={activation_id}" headers = { "Accept": "application/json", "Authorization": f"Basic {encoded_credentials}", } response = requests.get(url, headers=headers) # 打印格式化后的响应 print( json.dumps( json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": ") ) )
3. 验证认证正确性
确保encoded_credentials是用「邮箱地址:API Token」的字符串进行Base64编码后的结果,这是Jira Cloud API Basic认证的标准要求。
内容的提问来源于stack exchange,提问作者Rajesh Rajamani
相关产品推荐
相关产品推荐

