BigCommerce 私人应用程序可以使用 OAuth

Can BigCommerce Private Apps use OAuth

我对他们 API 的 BC 文档感到非常困惑,因为他们让你创建 "Draft Apps"(私人应用程序),现在我在他们的文档中看到他们说 "We do not currently provide a means of keeping OAuth apps private." .

我担心的是,他们最近进行了一些更改,这可能影响了我一个月前 运行 还不错的一些私有应用程序。如果有人能提供一些见解,我将不胜感激!

https://developer.bigcommerce.com/api/guides/oauth-transition

如果您在 "My draft apps" 中有应用程序并且使用了基本的 oauth,则必须更改为 Oauth 身份验证,但如果只有私有应用程序使用 "legacy api account",则无需更改。

创建带有 "Draft App" 的 oAuth 凭证并没有错,其唯一目的是访问您商店的 API。你永远不必发布你的应用程序,在这种情况下你的应用程序将永远不会被制作 "public"。您也不必费心 'Load Callback URL' 并在您的草稿应用程序上填写详细信息,除非您想在商店中为自己提供一个界面。

"Draft App" 功能专门用于允许为 BC App Marketplace 构建应用程序的开发人员在提交之前在商店中测试他们的应用程序。但是,您可以使用它来制作专供您的商店使用的私人应用程序 - 我在此处包括其他人的流程!

使用 oAuth 制作私人应用程序(或如何为商店生成 oAuth 凭据)

你需要什么
  • 访问您要安装应用程序的商店的 "store owner" 帐户,或者能够让有权访问的人完成几个步骤
  • 能够设置本地或 public URL 接收 'Auth Callback Request'

入门

您应该做的第一件事是整理出可以接收 "Auth Callback" 请求的本地或 public URL。此资源必须能够通过 HTTPS 连接工作,但 SSL 可以是 self-signed。来自 Bigcommerce 的 'Auth Callback' 请求是一个 GET 请求,它将在 URL 上有 3 个查询参数:代码、范围和上下文。

这里有更详细的描述: https://developer.bigcommerce.com/api/callback#get-req

Additional info

When building a public app it is important that the service receiving the Auth Callback request be configured to catch the 3 query values and combine them with information you already have. You would then send all of this information in a POST to the BC oAuth Token service to generate your API token for the store. In addition to that you would want to respond to the Auth Callback request with a 200 status and an interface, or instructions, for the user.

In the context of building a private application you don't need to worry about any of that. All you need to do is capture the query values. If you have this already then go ahead and jump down to the section on generating an API token below.

继续之前

您应该有一个 URL 路径可以接收 GET 请求并捕获查询参数。对其进行测试并确保其有效。这里有几个例子 URLs:
https://example.com/auth-callback
https://localhost:8000/auth-service

正在注册应用程序

这里的重点是应用程序的注册必须由您要安装应用程序的商店的店主帐户完成。如果您有权访问店主帐户凭据,请按照本页底部的步骤操作:
https://developer.bigcommerce.com/api/registration

如果您与店主合作,则可以指示他们完成上述步骤。您需要向他们提供您为完成 步骤 9 创建的 Auth 回调 URLLoad Callback URL 确实必须填写,但可以保留提供的默认示例。

SCOPES

When registering an app you are able to choose the scopes for the app. It is simple to just leave them all open but it is best practice to only enable the scopes you need. Here is a list of the scopes:
https://developer.bigcommerce.com/api/scopes

If you are not sure whether or not you will need a certain scope then leave it enabled because you will have to re-generate your API Token (perform a re-install of the app) if you have to change the scopes on your app.

继续之前

您需要 client_idclient_secret。如果其他人注册了该应用程序,则您需要向他们询问。有一个 查看客户端 ID 按钮,将在注册应用程序后提供它。

生成授权回调请求

您将再次需要具有店主访问权限的人员来执行此步骤。他们需要登录他们的商店并转到左侧栏的 Apps 部分。之后点击 Marketplace -> 然后 My Apps(在 top-right 中) -> 然后 My Draft Apps

您现在应该会看到一个列表,其中包含店主已注册的任何 "apps"。选择与您计划使用的 client_id 相关的那个。单击以安装 应用程序。

Auth Callback 请求现已发送,您已完成此处。除非您使用内容响应 Auth Callback 请求,否则您应该期望看到的只是一个空白或灰色页面。您的应用正在等待身份验证。

If using a self-signed certificate

When your Auth Callback URL has a self-signed certificate then you will see a "untrusted cert" error in your browser when you attempt installation of the app. You should choose to trust the certificate and continue.

继续之前

您现在应该已经在您的 Auth 处收到 codescopecontext回调URL。如果您没有这样做,可能是因为您的服务器上没有 SSL/TLS。您可以通过 取消安装 在启动应用程序的同一位置根据需要多次重播 Auth Callback 请求。您甚至可以打开开发工具并观察请求的发生,以查看控制台中显示的错误。如果这仍然失败,那么您应该联系 Bigcommerce 支持或在这里提出新问题!

正在生成 API 令牌以完成安装

按照此处的步骤操作: https://developer.bigcommerce.com/api/callback#post-req

您应该拥有向 https://login.bigcommerce.com/oauth2/token

的 BC 授权令牌服务发送 POST 请求所需的所有详细信息 确保 URL 对您的内容进行编码,这样您就可以了!这是一个可以 URL 为您编码和解码的站点:http://meyerweb.com/eric/tools/dencoder/
请注意编码 &= 符号,当它们实际用作字段之间或 field/value 之间的分隔符(分别) .

继续之前

您应该已经收到来自 Auth 服务的成功响应,其中将包含您的 [=80=API 令牌。一旦你有了这个,你就可以访问商店的 API 了。您不再需要启动和使用您的 Auth Callback URL,并且可以将其关闭。

还要注意用于创建 API 路径的 context

正在访问 API

现在您已经有了 API 令牌上下文,您就可以访问 API一家商店。从对 /time 端点的简单请求开始。

发出 GET 请求并包含以下内容 headers(去掉大括号):

  • X-Auth-Client:{CLIENT_ID}
  • X-Auth-Token:{API_TOKEN}
  • 接受:application/json
  • Content-Type: application/json

将您的请求发送到 URL 路径(减去大括号):

https://api.bigcommerce.com/{上下文}/v2/time

如果您收到 200 条回复,那么您就大功告成了!

附加说明 - 破解凭据的方法

一旦您成功为某个应用程序生成了 API 令牌,该应用程序将在控制面板的 应用程序 部分中显示为图标。该应用程序存在的事实表明它已安装并允许访问。如果您卸载该应用程序,那么之前生成的 API 令牌将停止工作。

更改已安装应用程序的 scopes 将要求其为 re-installed 以更正令牌。

更改商店的店主电子邮件将导致令牌停止工作。 API 令牌专门绑定到注册该应用程序的店主。