Active Collab用户邀请API报错:email_addresses未在数组中找到
解决Active Collab用户邀请API的"email_addresses not found"错误
看起来你遇到的问题主要出在JSON格式不规范和请求头缺失关键参数这两点上,我来帮你一步步排查修复:
问题根源分析
- JSON键名未加双引号:你手动编写的请求体里,
email_addresses和role这些键名没有用双引号包裹,而标准JSON要求所有键必须是双引号字符串。服务器解析时会把这种格式当成无效JSON,自然找不到email_addresses参数。 - 未指定Content-Type请求头:PowerShell的
Invoke-RestMethod默认可能不会把请求体标记为JSON类型,导致服务器无法正确解析你的请求内容。 - API期望数组类型:即便是单个邮箱,Active Collab的邀请API也要求
email_addresses是数组格式,所以去掉方括号的做法反而不符合接口要求。
修正后的PowerShell脚本
我推荐两种写法,优先用第一种(自动转JSON)避免手动格式错误:
方法1:用ConvertTo-Json自动生成规范JSON
# 确保Headers包含认证Token和Content-Type $headers = @{ "Authorization" = "Bearer YOUR_AUTH_TOKEN" # 替换成你的实际Token "Content-Type" = "application/json" } # 构造请求体对象,自动转成标准JSON $body = @{ email_addresses = @("webmaster@lukad.com") role = "Member" } | ConvertTo-Json # 调用API Invoke-RestMethod -Method Post -Headers $headers -Uri "https://pmo.lukad.net/api/v1/users/invite" -Body $body
方法2:手动编写标准JSON字符串
如果你坚持手动写JSON,一定要保证键名和字符串值都用双引号包裹:
$headers = @{ "Authorization" = "Bearer YOUR_AUTH_TOKEN" "Content-Type" = "application/json" } $body = '{"email_addresses": ["webmaster@lukad.com"], "role": "Member"}' Invoke-RestMethod -Method Post -Headers $headers -Uri "https://pmo.lukad.net/api/v1/users/invite" -Body $body
额外注意事项
- 确认你的认证Token权限足够调用用户邀请接口,避免因权限不足导致的隐性错误。
- 如果需要邀请多个用户,直接在
email_addresses数组里添加更多邮箱即可,比如@("webmaster@lukad.com", "user2@lukad.com")。
内容的提问来源于stack exchange,提问作者Jedrek Adamski
相关产品推荐
相关产品推荐

