mailchimp 中 OAuth 身份验证中的数据中心部分 API

Data center part in OAuth authentication in mailchimp API

在浏览 API 文档时我们发现,API URL 的数据中心部分对应于 API 键的最后一部分。

即使身份验证方法用作 OAuth2,这也适用吗?

我们是否应该使用元数据 URI“https://login.mailchimp.com/oauth2/metadata”来获取 OAUth2 身份验证方法的 DC 字符串?

哪种方式对 OAUth2 有效? DC 是来自 API 键还是来自 matadata URI?

谢谢。

此致, 索尼娅

我认为 OAuth 访问令牌不像 API 密钥那样在末端有数据中心,您可能需要使用元数据端点。

API 密钥用于探索 api,但在来自 mailchimp 端的 oauth2 流程中,收到的访问令牌充当 api 密钥。

您需要再执行 1 次调用才能获取数据中心名称并更正 api 次调用的 uri。

即使用您的访问令牌作为 header 进行空 get 调用。 你会得到以下 JSON 回复

{
    "dc":"us1",
    "login_url":"https:\/\/login.mailchimp.com",
    "api_endpoint":"https:\/\/us1.api.mailchimp.com"
}

希望对您有所帮助 :)

参考:https://apidocs.mailchimp.com/oauth2/

如上所述,还有一个步骤。调用元数据 URL。以下是如何执行此操作并检索 DC。请记住使用您的访问令牌:

$access_token = YOUR_ACCESS_TOKEN;
$mch = curl_init();

curl_setopt($mch, CURLOPT_URL,"https://login.mailchimp.com/oauth2/metadata");
curl_setopt($mch, CURLOPT_POST, 1);
curl_setopt($mch, CURLOPT_POSTFIELDS,'');
curl_setopt($mch, CURLOPT_RETURNTRANSFER, true);

$headers = array(
    'User-Agent: oauth2-draft-v10',
    'Host: login.mailchimp.com',
    'Accept: application/json',
    'Authorization: OAuth ' . $access_token
);

curl_setopt($mch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec ($mch);
curl_close ($mch);

print_r($response);