在 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
在 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