Невозможно пройти 400 Ошибка - PullRequest
0 голосов
/ 26 августа 2018

Код для создания нового пользователя:

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)
}

Вывод:

Invoke-RestMethod: удаленный сервер возвратил ошибку: (400) Bad Request.

Кто-нибудь, пожалуйста, сообщите мне исправление.Я попытался в конечной точке "team / members / list" получить список пользователей, используя тот же $token, и он работает.Я совершенно новичок в Dropbox API, поэтому мой код заимствован у Google, хотя, работая с PowerShell, я попытался исправить с помощью множества различных кодов, но ни один из них не помог.

1 Ответ

0 голосов
/ 27 августа 2018

Когда ничего не помогает, RTFM , параметры которого говорят:

{
    "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 из определения role и заменить "true" на $true

$Body = @{
    "new_members" = @(@{
        "member_email" = $email
        "member_given_name" = $FirstName                        
        "member_surname" = $LastName
        "send_welcome_email" = $true
        "role" = "member_only"
    })
}
...