Api 无法通过400错误
创建新用户的代码:Api 无法通过400错误,api,powershell,dropbox,Api,Powershell,Dropbox,创建新用户的代码: function New-DropBoxUser { [CmdletBinding()] Param( [Parameter(Mandatory=$true, ValueFromPipeline=$true, Position=0)] [string]$FullName ) # Split name into username # $FirstName, $LastName = $FullName.s
function New-DropBoxUser {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$true, ValueFromPipeline=$true, Position=0)]
[string]$FullName
)
# Split name into username #
$FirstName, $LastName = $FullName.split(' ')
$UserName = ($FirstName[0]+$LastName).toLower()
$email = "$UserName@mycomp.com"
$Body = @{
"new_members" = @(@{
"member_email" = $email;
"member_given_name" = $FirstName;
"member_surname" = $LastName;
"send_welcome_email" = "true";
"role" = @{
".tag" = "member_only"
}
})
}
Write-Host ''
Write-Host 'Creating DropBox User...' -ForegroundColor 'Yellow' -BackgroundColor 'Black'
$AuthToken = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
$token = "Bearer $AuthToken"
$response = Invoke-RestMethod `
-Method Post `
-Uri "https://api.dropboxapi.com/2/team/members/add" `
-Headers @{ Authorization = $token } `
-ContentType "application/json; charset=utf-8" `
-Body (ConvertTo-Json $Body)
}
输出:
调用RestMethod:远程服务器返回错误:(400)请求错误
任何人,请告诉我解决方法。我尝试使用相同的$token
端点“team/members/list”来获取用户列表,结果成功了。
我是Dropbox API的新手,所以我的代码是从Google借来的,虽然我很擅长使用PowerShell,但我尝试使用许多不同的代码进行修补,但都没有成功。当所有其他代码都失败时,其参数显示:
{
"new_members": [
{
"member_email": "tom.s@company.com",
"member_given_name": "Tom",
"member_surname": "Silverstone",
"member_external_id": "company_id:342432",
"send_welcome_email": true,
"role": "member_only"
}
],
"force_async": false
}
尝试从角色定义中删除.tag
,并用$true
替换“true”
$Body = @{
"new_members" = @(@{
"member_email" = $email
"member_given_name" = $FirstName
"member_surname" = $LastName
"send_welcome_email" = $true
"role" = "member_only"
})
}
错误消息可能包含关于您做错了什么的提示。我建议您通过将-ErrorVariable-irmError
添加到Invoke RestMethod
调用中来捕获变量中的错误,然后查看$irmError
afterwards@MathiasR.Jessen,我尝试了-error变量,但该变量没有数据。此操作未捕获错误。Invoke-RestMethod`-Method Post`-Uri”“`-Headers@{Authorization=$token}`-ContentType“application/json;charset=utf-8”`-Body(ConvertTo json$Body)`-ErrorVariable$erowrite Host$erotry catch也要捕获异常,请重试{Invoke RestMethod`-Method Post`-Uri”“`-Headers@{Authorization=$token}`-ContentType“application/json;charset=utf-8”`-Body(ConvertTo json$Body)`-ErrorVariable$ero`-ErrorAction Stop Write Host$ero}在本机powershell布尔类型的$true
中编辑的catch{$ErrorMessage=$\异常.Message Write Host$ErrorMessage}。已尝试“send_welcome_email=$true,但代码失败,但在更改角色并删除.tag之后,它可以工作。我相信$true
是正确的语法。在这种情况下,生成的JSON是:true
,而“true”
生成了:“true”