#powershell #mailchimp
#powershell #mailchimp
Вопрос:
В PowerShell я смог войти в систему, используя базовую аутентификацию HTTP для Mail Chimp.
$acctname = 'thisismyusername'
$password = 'thisismyapikey'
$params = @{
Uri = 'https://us14.api.mailchimp.com/3.0/';
Method = 'Get'; #(or POST, or whatever)
Headers = @{Authorization = 'Basic ' [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($acctname):$($password)"));} #end headers hash table
} #end $params hash table
$var = Invoke-RestMethod @params
$var
Когда я пытаюсь получить основную информацию о списке, это идентификатор «d3a7a4432d».
$URL = "https://us14.api.mailchimp.com/3.0/"
$Endpoint = "/lists/d3a7a4432d"
$URLMailChimp = "$URL$Endpoint"
$gist = Invoke-RestMethod -Method Get -Uri $URLMailChimp
Я получаю это сообщение об ошибке:
Invoke-RestMethod : { "тип":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary /", "заголовок": "Отсутствует ключ API", "статус": 401, "подробности": "Ваш запрос не включал ключ API.", "экземпляр":"" } В строке: 7 символ: 9 $gist = Invoke-RestMethod -Method Get -Uri $URLMailChimp ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo: недействительная операция: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], исключение WebException FullyQualifiedErrorId: исключение WebCmdletWebResponseException, Microsoft.PowerShell.Команды.InvokeRestMethodCommand
Я не понимаю, как снова передать ему мой ключ API. Я думал, что, зарегистрировав его, он решил проблему.
Ответ №1:
Я не использую MailChimp, но если первый вызов не предоставит вам токен доступа (и документация, а также ваше сообщение об ошибке не выглядят так, как это было бы), вам необходимо предоставить заголовок аутентификации с каждым запросом.
$acctname = 'thisismyusername'
$password = 'thisismyapikey'
$URL = 'https://us14.api.mailchimp.com/3.0/'
$listID = 'd3a7a4432d'
$auth = @{Authorization = 'Basic ' [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("${acctname}:${password}"))}
$gist = Invoke-RestMethod -Method Get -Uri "$URL/lists/$listID" -Headers $auth
Комментарии:
1. прохождение через объект json $JSON = ConvertTo-Json @{ apikey = «thiskey» } $gist = Вызов RestMethod -метода Get -Uri $URLMailChimp -body $JSON