Ошибка при попытке использовать Power BI REST API - Invoke-RestMethod: не найден позиционный параметр, принимающий аргумент - PullRequest
0 голосов
/ 17 декабря 2018

В последнее время я пытался использовать Power BI REST API для автоматического обновления определенного набора данных, , вызывая программу .ps1 .Следуя этому руководству, я смог получить этот код, который был дополнен, как вы можете видеть ниже:

$groupID = "me" # the ID of the group that hosts the dataset. Use "me" if this is your My Workspace
$datasetID = "MYDATASETID" # the ID of the dataset that hosts the dataset

$clientId = "MYCLIENTID" 

# Calls the Active Directory Authentication Library (ADAL) to authenticate against AAD
function GetAuthToken
{
       if(-not (Get-Module AzureRm.Profile)) {
         Import-Module AzureRm.Profile
       }

       $redirectUri = "urn:ietf:wg:oauth:2.0:oob"

       $resourceAppIdURI = "https://analysis.windows.net/powerbi/api"

       $authority = "https://login.microsoftonline.com/common/oauth2/authorize";

       $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority

       $authResult = $authContext.AcquireToken($resourceAppIdURI, $clientId, $redirectUri, "Auto")

       return $authResult
}

$token = GetAuthToken

$authHeader = @{
   'Content-Type'='application/json'
   'Authorization'=$token.CreateAuthorizationHeader()
}

$groupsPath = ""
if ($groupID -eq "me") {
    $groupsPath = "myorg"
} else {
    $groupsPath = "myorg/groups/$groupID"
}

$uri = "https://api.powerbi.com/v1.0/$groupsPath/datasets/$datasetID/refreshes" 
Invoke-RestMethod -Uri $uri –Headers $authHeader –Method POST –Verbose

$uri = "https://api.powerbi.com/v1.0/$groupsPath/datasets/$datasetID/refreshes"
Invoke-RestMethod -Uri $uri –Headers $authHeader –Method GET –Verbose

Я собрал параметры(groupID, clientID и datasetID) точно так, как указано в ссылках выше.Однако, , когда я пытаюсь выполнить этот код, я получаю сообщение об ошибке:

Invoke-RestMethod : A positional parameter cannot be found that accepts argument 'â€Headers System.Collections.Hashtable â€Method'.
At C:\Users\me\Desktop:41 char:1

Я не могу точно сказать, что происходит, и я даже обнаружил что-то похожееслучаи , но ни одно из решений не помогло мне.Таким образом, некоторая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 17 декабря 2018

Похоже, что это решение копируется / вставляется откуда-то, и черты закручены:

enter image description here

Удалите последние 3 черты в Invoke-RestMethod, который выглядит как тире, но другие похожи на символы юникода тире, и заменяют их на обычные символы «набираются с клавиатуры».

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...