在 Mailchimp 中进行 HTTP 基本身份验证后进行 API RestMethod 调用时缺少 API 密钥

Missing API key when making API RestMethod Call After HTTP Basic authentication in Mailchimp

在 PowerShell 中,我能够使用 Mail Chimp 的 HTTP 基本身份验证登录。

$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

当我尝试获取列表的基本信息时,id 是 "d3a7a4432d"。

$URL = "https://us14.api.mailchimp.com/3.0/"
$Endpoint = "/lists/d3a7a4432d"
$URLMailChimp = "$URL$Endpoint"
$gist = Invoke-RestMethod -Method Get -Uri $URLMailChimp

我收到此错误消息:

Invoke-RestMethod : {
    "type":"http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
    "title":"API Key Missing",
    "status":401,
    "detail":"Your request did not include an API key.",
    "instance":""
}
At line:7 char:9
+ $gist = Invoke-RestMethod -Method Get -Uri $URLMailChimp
+         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
     + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

我不明白如何再次将我的 API 密钥传递给它。我认为通过记录它可以解决问题。

我不使用 MailChimp,但除非第一次调用为您提供访问令牌(并且 documentation 以及您的错误消息看起来不像那样),否则您需要提供每个请求的身份验证 header。

$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