【问题标题】:BigCommerce API OAuth server to server scriptBigCommerce API OAuth 服务器到服务器脚本
【发布时间】:2014-08-02 06:15:41
【问题描述】:

连接到 BigCommerce API 的最新规范建议使用 OAuth,因为简单的身份验证方法很快就会被弃用。

我一直在一些 PHP 脚本中使用 BigCommerce API,这些脚本可以访问我的商店的 Store API。这些脚本执行相对简单的操作,例如更新产品名称、更新产品价格等。

我对如何将这些脚本转移到使用新的 OAuth 系统感到困惑。我正在阅读的所有内容都使 OAuth 看起来像是基于开发用户安装并授权访问其商店的实际应用程序。然而,这显然不是我的用例,让我很困惑。

一个简单的例子是从我的商店中检索产品的脚本。我只需在 PHP 文件中运行此代码:

Bigcommerce::configure(array(
    'store_url' => 'https://www.my-store.com',
    'username' => 'my_username',
    'api_key' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
));
Bigcommerce::setCipher('RC4-SHA');
Bigcommerce::verifyPeer(false);

Bigcommmerce::getProducts();

如何使用 OAuth 实现同样的目的?有没有可能?

【问题讨论】:

    标签: php api oauth bigcommerce


    【解决方案1】:

    @developerscott 完全正确,但只是为了补充您的问题,即如何使用 oAuth 和 BC PHP API SDK 实现与您的代码相同的功能

    一旦您拥有一个 oAuth 访问令牌和您创建的应用程序的 client_id,您就可以使用它们在您的 PHP 脚本中使用 oAuth。您只需要像这样将这些凭据提供给 Bigcommerce::configure() 方法,而不是 usernameapi_key 属性:

    Bigcommerce::configure(array(
        'store_hash' => 'abcdef',
        'client_id' => '123xxxx321',
        'auth_token' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    ));
    Bigcommerce::setCipher('RC4-SHA');
    Bigcommerce::verifyPeer(false);
    
    Bigcommmerce::getProducts();
    

    【讨论】:

      【解决方案2】:

      我意识到这可能有点离题,因为我看到您使用的是 PHP,而且我的经验是使用 C#,但我想我会在这个问题上添加我的 cmets,所以也许有人会受益:

      我一直在处理同一类型的 oauth 令牌问题,文档并没有太大帮助,但是一旦我开始工作,我终于设法通过在我的服务器上本地创建我的 SSL 回调页面来设置应用程序。一旦我在应用程序设置中指定了该 URL,我就全部设置好了。需要注意的是,我必须从服务器本身执行“安装”,因为在以店主身份登录 BC 时它不是公共 URL。然后我能够从查询字符串中获取临时令牌并回发到https://login.bigcommerce.com/oauth2/token 并从响应流中获取永久令牌。 他们的 API 代表确实提到的一件可能令人感兴趣的事情是,最终您将需要每 60-90 天左右刷新一次“永久”令牌,一旦他们按顺序完成。

      【讨论】:

        【解决方案3】:

        我可能会创建一个快速“应用程序”来获取客户端 ID、客户端密码和令牌。然后使用这些凭据进行外部身份验证。因此,您将安装一个“身份验证应用程序”,但从 BC 之外执行您的代码。

        请注意,这与 iframe 中的已安装应用的工作方式没有太大区别。

        PS,我实际上并没有尝试过,但理论上它应该可以工作。

        【讨论】:

        • 我也在想同样的事情。我遇到的问题是,要获取这些凭据,特别是令牌,您必须为该令牌交换一个临时代码。当用户尝试安装我的应用程序时,临时代码是通过对 Auth 回调 URL 的 GET 请求提供给我的。这是否意味着我需要将我的“身份验证应用程序”提交给 BigCommerce,等待它出现在他们的应用程序市场中,然后尝试在我的商店中安装它?还是有其他方法可以检索此令牌?这是我指的页面:developer.bigcommerce.com/apps/authentication
        • 如果它只适合您,您将永远不必发布该应用程序。您可以将草稿应用程序安装到您自己的商店中并以这种方式运行。如果这不是您要找的,我可能需要更多背景知识。
        • 这正是我正在寻找的。如何安装草稿应用程序?我在开发者控制台中没有看到这个选项。
        • 首先您必须将您的草稿应用程序添加到我的应用程序中。这是通过登录 developer.mybigcommerce.com 并单击右上角的我的应用程序来完成的。设置草稿应用程序后,只需使用相同的登录名登录商店,转到应用程序(左侧),然后是我的草稿。点击安装即可。
        • 哇,我不知道。非常感谢您的帮助。
        猜你喜欢
        • 2020-01-15
        • 2016-06-06
        • 1970-01-01
        • 1970-01-01
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多