【问题标题】:Bigcommerce - Developing an application in PHP - WebhooksBigcommerce - 用 PHP 开发应用程序 - Webhooks
【发布时间】:2023-04-03 19:03:02
【问题描述】:

这是我为内部业务需求开发的第一个应用程序,我需要一些帮助才能开始。

到目前为止,我发现他们的文档在标准方面相当低,但通过大量的谷歌搜索和研究,我已经成功获得了生成访问令牌的请求。

我使用 Composer 下载了 Guzzle 并创建了一个小代码来监听 GET 请求,然后我发布了一些详细信息并收到了令牌。太好了!

现在呢?看起来我需要注册一个网络钩子,但首先我想从列出钩子开始 - 只是为了了解我接下来需要做什么。

我希望在每次下订单时检索订单详细信息。

问题:

  • 我有一个托管在 SSL 主机上的 oauth.php 文件,当我安装应用程序时会调用该文件。这给了我一个令牌。收到令牌后是否立即注册网络挂钩?

  • 如果是,我现在是否要创建一个 webhook.php 文件来实时监听订单?

  • 如果是,我是否需要运行我在 oauth 中的相同代码,以检查我是否被允许,如果允许,请听调用并处理?

【问题讨论】:

  • 您的应用是为一位或多位所有者提供的?
  • 您好 miglio - 只有一位所有者。它不是公共应用程序。谢谢
  • bigcommerce 必须创建应用程序,私有和公共,oauth 令牌用于公共,私有不是必需的,因为您在管理员存储中生成的密钥。那么你只需要一个比公共简单的私有应用程序
  • 您好 miglio - 谢谢!网络钩子呢?我需要编写一个在下订单时检索订单信息的流程。那么我是否仍然可以使用 API 凭据并在每次下订单时让 Bigcommerce 调用我的脚本?

标签: php oauth-2.0 bigcommerce webhooks guzzle


【解决方案1】:

获得访问令牌后,您可以随时创建/列出 webhook。根据稀疏文档,您的访问令牌将在 30-60 天后到期,因此您最终需要更新它。

创建 webhook 后,您将需要一个脚本来接收来自 BigCommerce 的传入数据。如果 webhook 从脚本中接收到 200 以外的 HTTP 代码,它将尝试延迟重复请求,并在多次失败后最终将 hook 标记为不活动。

您不需要在由 webhook 触发的脚本上添加任何与 oauth 相关的代码。如果您确实需要某种形式的身份验证来验证数据的来源,请查看有关使用 webhook 请求发送自定义标头的文档。当 webhook 触发时,它将发送一个 JSON 对象,其中包含已更改资源的范围和 ID。

应该注意,虽然您需要为 oauth 进程和 webhook 触发器提供 HTTPS URL,但除非您的 SSL 已加载所有中间证书,否则 webhook 触发器将不起作用。没有这个你可以通过 OAuth 过程,但是这些钩子根本不起作用,甚至不会命中你的服务器访问日志。

【讨论】:

  • 非常感谢@Zetaphor - 在过去的几天里,我设法创建了一个 webhook 并将 POST 发送给我。花了一段时间才把它全部解决。你的帖子还是很有用的。谢谢!
  • @LifeSteala 很高兴我能提供帮助,文档非常稀少,并且遗漏了一些非常重要的细节。希望 OAuth 和 Webhook 的拉取请求能尽快合并到 API 库中,从而避免这些问题。
  • 他们的文档很糟糕。他们的 API 库更糟糕,完全过时了。我也希望他们能够在未来帮助开发人员。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-18
  • 2010-10-01
  • 2013-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多