Как сократить URL с помощью Bitly V4 API с помощью PowerShell? - PullRequest
1 голос
/ 26 февраля 2020

В настоящее время я использую приведенный ниже скрипт PowerShell для сокращения любого URL-адреса с помощью API-интерфейса Bitly V3. Я надеюсь, что кто-то может помочь сделать то же самое с помощью API Bitly V4.

function New-ShortURL {
    param (
            [Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$True, ValueFromPipelineByPropertyName=$True)]
            $URL
        )
    #https://app.bitly.com API
    $OAuthToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    $MyURL=Invoke-WebRequest -Uri https://api-ssl.bitly.com/v3/shorten -Body @{access_token=$OAuthToken;longURL=$URL} -Method Get
    $MyURLjson = $MyURL.Content | convertfrom-json
    $MyURLjson.data.url
}

1 Ответ

2 голосов
/ 27 февраля 2020

Читая документацию об изменениях в v4 , говорится:

Предыдущие версии API использовали параметр запроса для отправки токена. Это больше не применимо в v4.0. Токены должны быть созданы с использованием спецификации OAuth Bearer Token, используя заголовок Authorization в запросе.

Это означает, что вы не можете сделать это,

$body = @{access_token=$OAuthToken;longURL=$URL}

, вместо этого вы необходимо добавить токен доступа в заголовок вашего запроса.

$header = @{Authorization = "Bearer $OAuthToken"

и метод ... кажется POST вместо GET.

Ваш запрос должен выглядеть примерно так:

...