使用 OAuth 2 令牌调用 MailChimp API
Posted
技术标签:
【中文标题】使用 OAuth 2 令牌调用 MailChimp API【英文标题】:MailChimp API call with OAuth 2 token 【发布时间】:2018-05-07 21:15:22 【问题描述】:我无法使用 OAuth 2 令牌调用 Mailchimps API 3.0 端点,例如 /lists
。
但是,当我尝试使用以下方法访问 /lists
时,我已经拥有令牌并拥有来自 /metadata
调用的端点
//Get lists
$client = new \GuzzleHttp\Client(['base_uri' => $datacenter]);
$headers = [
'Authorization' => 'OAuth ' . $token,
'Accept' => 'application/json',
'Host' => $client_endpoint,
'User-Agent' => 'oauth2-draft-v10'
];
$response = $client->request('GET', 'lists', [
'headers' => $headers
]);
$lists = json_decode($response->getBody());
当然有一个简单的解决方案,我是 OAuth 2 和 MailChimp 的新手,并且很难找到有关使用 OAuth2 令牌调用 MailChimp 的任何信息。
我也尝试过以下...
//Get list data
$client = new \GuzzleHttp\Client(['base_uri' => $client_endpoint]);
$headers = [
'Authorization' => 'OAuth ' . $token
];
$response = $client->request('GET', 'lists',[
'user' => 'anystring:' . $token,
'headers' => $headers
]);
Log::debug($response);
这里的任何帮助都会非常有用
【问题讨论】:
我忘了补充说我第一次尝试收到错误 400 错误请求,第二次找不到错误 404 能否请您提供第一次通话的响应正文和标头?$response->getBody()->getContents();
【参考方案1】:
在标题中以Authorization: OAuth [token]
格式提供令牌似乎无法按预期工作。
我使用 PostMan 完成了以下请求,提供代码以方便使用:
// GET https://us1.api.mailchimp.com/3.0/lists
// authorization:"Bearer 0319[redacted]f966"
$response = $client->get( $datacenter.'/3.0/lists', [
'headers' => ['Authorization' => 'Bearer ' . $token]
]);
$lists = json_decode($response->getBody());
注意:代码未测试,请求已测试
【讨论】:
以上是关于使用 OAuth 2 令牌调用 MailChimp API的主要内容,如果未能解决你的问题,请参考以下文章
无法在 node.js 中交换访问令牌的代码。 Mailchimp API