MailChimp API 调用的 OAuth 2 令牌
Posted
技术标签:
【中文标题】MailChimp API 调用的 OAuth 2 令牌【英文标题】:OAuth 2 token of MailChimp API call 【发布时间】:2018-05-12 11:41:33 【问题描述】:我正在开发一个应用程序,我想从该应用程序中创建带有列表的广告系列。应用程序流程是这样的,用户将单击Button,然后用户将重定向到 MailChimp 登录页面,用户将在登录后返回我的站点,其中 URL 为http://127.0.0.1:8000/home?code=f0f6949c8b5286c38a90aa4820776e14
。此代码是授权码。
现在我想获取刚才登录的特定用户的Lists。我可以使用 API 密钥获取我的列表,但我需要用户列表,我不知道用户 API 密钥。
怎么办?
我认为我需要 来获取用户列表。如何获取 ?
谢谢
【问题讨论】:
【参考方案1】:来自 MailChimp 文档(来源:http://developer.mailchimp.com/documentation/mailchimp/guides/how-to-use-oauth2/)
如何使用 OAuth2
对于需要客户端访问 MailChimp 的服务器的集成平台的开发人员,我们建议使用 OAuth2 进行授权。 OAuth2 是一个安全选项,它允许第三方应用程序在不传递用户凭据或 API 密钥的情况下访问服务器。
开始之前
在开始 OAuth2 流程之前,您需要了解以下几点。
我们的服务器实现了 OAuth2 规范的 v10,并支持 Web Server Flow。 在服务器端,OAuth2 是纯 HTTPS,因此我们建议为您的 redirect_uri 使用 HTTPS。 我们不会使令牌过期,因此您无需使用 refresh_token。 注册您的应用程序
当您准备好开始时,向 MailChimp 注册您的应用程序:
在您的 MailChimp 帐户中,导航到“帐户”页面。 在帐户下拉菜单中,单击 Extras,然后选择 API Keys。 在“开发应用程序?”下标题,单击注册和管理您的应用程序。 单击注册应用程序。 在提供的字段中,输入您的应用程序信息,然后单击创建。 创建成功后,您将看到一条 Application created 消息出现,并在表单末尾显示更多信息,包括 Client_ID 和 Client Secret。不要共享 Client_ID 和 Client Secret。
在此屏幕上,您无需保存或更改信息。点击更新或取消返回注册应用页面,或关闭窗口。
端点
OAuth2 公开了三个特定端点,一个用于元数据。
authorize_uri https://login.mailchimp.com/oauth2/authorize access_token_uri https://login.mailchimp.com/oauth2/token redirect_uri 客户端,可供正在使用的浏览器使用。 元数据 https://login.mailchimp.com/oauth2/metadata注意
我们支持 redirect_uri 的通配符,因此您可以提供 用于正确 API 调用的特定于数据中心的信息。通配符工作 只要 redirect_uri 看起来是用户可注册的域 在***域下。例如,如果您输入 https://co.uk/ 作为 一个redirect_uri,通配符支持将不起作用。如果你输入 https://mydomain.co.uk/,通配符支持将起作用。域检测 基于these criteria。
redirect_uri 也将覆盖 URL 的路径部分。 例如,将 redirect_uri 设置为 https://test.example.com/oauth.php 表示任何以 test.example.com 或 *.test.example.com 将起作用(即:https://test.example.com/somethingelse.php 有效)。
流程
-
要启动应用程序与 MailChimp 的连接,首先将用户发送到 authorize_uri。
用户将输入他们的用户名和密码来批准您的申请。此处不允许使用“记住我”cookie。
在用户授权您的应用程序后,我们的服务器会将您的用户重定向回redirect_uri,以及您可以交换access_token 的代码。该代码有效期为 30 秒。
然后,您的应用程序应使用我们的服务器提供的代码向 access_token_uri 发出带外请求。
我们的服务器返回一个 access_token,完成了官方 OAuth2 流程。
要完成 MailChimp 流程,请使用 OAuth2 客户端向 metadata_uri 发出另一个 RESTful 请求。
我们的服务器将返回数据中心字符串、API 端点和登录 URL,如下表所述。
直流:
数据中心字符串,如 us1、us2。如果您的 API 包装器支持数据中心,请使用 access_token-dc 作为标准 API 密钥。
api_endpoint:
使用 https://dc.api.mailchimp.com。如果您的 API 包装器不支持数据中心,请使用此 API 端点和 access_token 作为您的 API 密钥。
登录网址:
https://login.mailchimp.com
注意
access_token 用作 API 密钥。用户无权访问这些密钥,因为它们直接与您的 应用。但是,用户可以取消对您的应用程序的授权 MailChimp,它会删除令牌并使令牌无效。
配置信息
用户特定配置
client_id 635959587059 client_secret 0da3e7744949e1406b7b250051ee1a95 redirect_uri http://192.168.1.8/oauth/complete.phpMailChimp 标准 OAuth2 配置
authorize_uri https://login.mailchimp.com/oauth2/authorize access_token_uri https://login.mailchimp.com/oauth2/token base_uri https://login.mailchimp.com/oauth2/MailChimp 自定义配置
metadata_uri https://login.mailchimp.com/oauth2/metadata【讨论】:
以上是关于MailChimp API 调用的 OAuth 2 令牌的主要内容,如果未能解决你的问题,请参考以下文章
为啥在发送 Mailchimp API oauth2 初始请求后我没有在浏览器中被重定向?
MailChimp API DrewM\MailChimp\MailChimp::call() 调用未定义的方法
Mailchimp 如何在 javascript 中调用 mailchimp 3.0 API