Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Api 无法通过400错误_Api_Powershell_Dropbox - Fatal编程技术网

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”