You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Freshservice中更新变更请求的Planning字段?API脚本求助

如何在Freshservice中更新Planning字段?

你遇到的问题可以通过修正脚本中的认证逻辑、JSON序列化深度和端点参数来解决,具体内容如下:

关键问题修正

  • 认证格式错误:Freshservice的Basic认证要求将API Key作为用户名,密码部分固定填x,再对{API_KEY}:x的字符串做Base64编码,而非直接编码API Key。
  • JSON序列化深度不足:PowerShell的ConvertTo-Json默认深度为2,你的嵌套结构有3层,必须指定-Depth 3防止结构被截断。
  • 端点参数替换:确保把端点中的{id}替换为实际的变更请求ID,正确端点是/api/v2/changes/{id},change_requests会导致404错误。

修正后的脚本

# 设置API密钥和端点URL,替换{changeId}为实际变更请求ID
$apiKey = "your_api_key_here"
$changeId = "123" # 替换成你的变更请求ID
$endpoint = "https://domain.freshservice.com/api/v2/changes/$changeId"

# 构造正确的认证头
$authString = "{0}:x" -f $apiKey
$authBytes = [System.Text.Encoding]::ASCII.GetBytes($authString)
$authBase64 = [System.Convert]::ToBase64String($authBytes)
$headers = @{ "Authorization" = "Basic $authBase64" }

# 构造更新数据并指定JSON序列化深度
$newData = @{
    "change_request" = @{
        "planning" = @{
            "reason_for_change" = "Test change updation"
            # 可添加其他Planning字段,如implementation_start_date、implementation_end_date等
        }
    }
} | ConvertTo-Json -Depth 3

# 发送请求并捕获结果
try {
    $response = Invoke-RestMethod -Method Put -Uri $endpoint -Headers $headers -ContentType "application/json" -Body $newData
    Write-Host "更新成功,响应内容:"
    $response | ConvertTo-Json -Depth 10
} catch {
    Write-Host "更新失败,错误信息:"
    $_.Exception.Message
    if ($_.ErrorDetails) {
        $_.ErrorDetails.Message
    }
}

额外排查点

  • 确认变更请求的状态是否允许修改Planning字段(部分状态下字段会被锁定)。
  • 可以在Freshservice后台的API调试工具中测试请求,验证字段名和结构是否匹配。

内容的提问来源于stack exchange,提问作者Roshin Raphel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:18:09