仅出于访问商店 API 的目的而使用“草稿应用程序”创建 oAuth 凭据没有任何问题。在这种情况下,您不必发布您的应用程序,并且您的应用程序永远不会被“公开”。您也不必费心“加载回调 URL”并在您的草稿应用上填写详细信息,除非您想在商店中为自己提供一个界面。
“应用程序草稿”功能专门用于允许开发人员为 BC 应用市场构建应用程序,以便在提交之前在商店中测试他们的应用程序。但是,您可以使用它来制作仅适用于您的商店的私有应用程序 - 我在此处包括其他人的流程!
使用 oAuth 制作私有应用程序(或如何为商店生成 oAuth 凭据)
你需要什么
- 访问列为您要安装应用的商店的“店主”的帐户或让有权访问的人完成几个步骤的能力
- 能够设置本地或公共 URL 以接收“身份验证回调请求”
开始
您应该做的第一件事是整理出一个可以接收“Auth Callback”请求的本地或公共 URL。此资源必须能够通过 HTTPS 连接工作,但 SSL 可以是自签名的。 Bigcommerce 的“身份验证回调”请求是一个 GET 请求,该请求将在 URL 上包含 3 个查询参数:代码、范围和上下文。
这里有更详细的描述:
https://developer.bigcommerce.com/api/callback#get-req
其他信息
在构建公共应用程序时,重要的是配置接收 Auth 回调请求的服务以捕获 3 个查询值并将它们与您已有的信息相结合。然后,您将在 POST 中将所有这些信息发送到 BC oAuth 令牌服务,以便为商店生成您的 API 令牌。除此之外,您还希望使用 200 状态和用户界面或说明来响应 Auth Callback 请求。
在构建私有应用程序的情况下,您无需担心任何这些。您需要做的就是捕获查询值。如果你已经有了这个,那么继续并跳到下面关于生成 API 令牌的部分。
在继续之前
您应该有一个可以接收 GET 请求并捕获查询参数的 URL 路径。测试它并确保它有效。以下是几个示例 URL:
https://example.com/auth-callback
https://localhost:8000/auth-service
注册应用
这里的重点是应用程序的注册必须由您要安装应用程序的商店的店主帐户完成。如果您有权访问店主帐户凭据,请按照本页底部的步骤操作:
https://developer.bigcommerce.com/api/registration
如果您正在与店主合作,那么您可以指导他们完成上述步骤。您需要向他们提供您为完成步骤 9 而创建的 Auth 回调 URL。 加载回调 URL 必须填写,但提供的默认示例可以保留。
范围
注册应用时,您可以选择应用的范围。将它们全部打开很简单,但最佳做法是仅启用您需要的范围。以下是范围列表:
https://developer.bigcommerce.com/api/scopes
如果您不确定是否需要某个范围,请保持启用状态,因为如果您必须更改应用程序的范围,则必须重新生成 API 令牌(执行重新安装应用程序)。
在继续之前
您需要有 client_id 和 client_secret。如果其他人注册了该应用程序,那么您需要向他们询问。有一个查看客户端ID按钮,注册应用后会提供它。
生成身份验证回调请求
在此步骤中,您将再次需要具有店主访问权限的人员。他们需要登录他们的商店并转到左侧栏中的应用程序部分。之后点击 Marketplace -> 然后点击 My Apps(在右上角)-> 然后点击 My Draft Apps
您现在应该会看到一个列表,其中包含店主已注册的所有“应用程序”。选择与您计划使用的 client_id 相关的一个。点击安装应用程序。
现在已经发送了 Auth Callback 请求,您到此就完成了。除非您使用内容响应 Auth Callback 请求,否则您应该会看到一个空白或灰色页面。您的应用现在正在等待身份验证。
如果使用自签名证书
如果您的身份验证回调 URL 具有自签名证书,那么当您尝试安装应用程序时,您将在浏览器中看到“不受信任的证书”错误。您应该选择信任证书并继续。
在继续之前
您现在应该已经在您的 Auth Callback URL 中收到了 code、scope 和 context。如果您不这样做,可能是因为您的服务器上没有 SSL/TLS。您可以通过取消安装在您启动应用程序的同一位置多次重放 Auth Callback 请求。您甚至可以打开一个开发工具并观察请求发生的情况,以查看控制台中显示的错误。如果这仍然失败,那么您应该联系 Bigcommerce 支持或在此处提出新问题!
生成 API 令牌以完成安装
按照此处的步骤操作:
https://developer.bigcommerce.com/api/callback#post-req
您应该拥有向 BC Auth Token Service 发送 POST 请求所需的所有详细信息,地址为 https://login.bigcommerce.com/oauth2/token
确保对您的内容进行 URL 编码,您应该会很好!这是一个可以为您进行 URL 编码和解码的站点:http://meyerweb.com/eric/tools/dencoder/
请注意编码 & 和 = 符号时,它们实际上被用作字段之间或字段/值之间的分隔符(分别)。
在继续之前
您应该已经收到来自 Auth 服务的成功响应,其中包含您的 API 令牌。一旦你有了这个,你就可以访问商店的 API。您不再需要让您的身份验证回调 URL 可用并且可以取消它。
还要记下用于创建 API 路径的上下文。
访问 API
现在您已经有了 API 令牌 和 context,您就可以访问商店的 API。从对 /time 端点的简单请求开始。
发出 GET 请求并包含以下标头(减去花括号):
- X-Auth-Client:{CLIENT_ID}
- X-Auth-Token:{API_TOKEN}
- 接受:应用程序/json
- 内容类型:应用程序/json
将您的请求发送到(减去花括号)的 URL 路径:
https://api.bigcommerce.com/{context}/v2/time
如果你得到一个 200 响应,那么你就准备好了!
附加说明 - 破坏凭据的方法
为某个应用成功生成 API 令牌后,该应用将在控制面板中显示为 应用 部分的图标。该应用程序在那里的事实表明它已安装并允许访问。如果您卸载该应用,则之前生成的 API 令牌将停止工作。
更改已安装应用的范围将需要重新安装它以更正令牌。
在商店中更改店主电子邮件将导致令牌停止工作。 API 令牌专门与注册应用的商店所有者绑定。