如何生成Shopify访问令牌

功能

许多店主需要帮助来为他们的商店添加额外的功能。或者你是一名开发人员,有一个很好的新应用程序(应用程序)的想法,可以帮助店主更好地销售。无论哪种方式,你都可能需要使用Shopify的API。该API允许您做一些事情,例如下载商店的产品库存和修改商店的主题。

在本文中,我们将了解如何访问特定商店并进行API调用。本文假设您至少具有一些开发知识。我将使用PHP来演示示例,但是您几乎可以使用任何开发语言来完成所讨论的所有功能。

为Shopify商家开发应用程序

无论您是想为Shopify应用商店开发应用程序,提供私人应用程序开发服务,还是正在寻找扩大用户基础的方法,Shopify合作伙伴计划都将为您的成功奠定基础。免费加入并获得教育资源、开发人员预览环境和经常性收入分享机会。

报名

应用程序类型

在Shopify中,有两种类型的应用程序:私有和公共。私有应用程序只锁定在一家商店,通常是为那些想要扩展自己商店功能的商店老板准备的。你可能已经猜到了,公共应用是面向所有商店所有者提供的应用,而不是锁定在一家商店。列表中列出的所有应用程序Shopify App Store都是公共应用。在本文中,我们将重点关注公共应用程序,但两者的技术方面是相同的。

你可能还会喜欢:开发一款畅销Shopify应用的4个技巧

在开始之前OB欧宝娱乐APP

在本指南中,我们将介绍让您的应用程序运行并与Shopify API通信所需的每个步骤。在我们继续之前,你需要做以下事情(如果你还没有做):

1.登记参加Shopify合作伙伴帐户.它是免费的!

2.登录时,继续创建应用程序的API密钥在这里.大多数选项都是不言自明的,但是当你进入应用程序回调URL字段时,你需要输入域名你正在研究的。Shopify将只发送令牌到此域。例如,如果您在本地计算机上工作,您可能希望将此设置为http://localhost/现在。

3.登录后,单击应用程序在左侧导航栏上,单击创建应用程序

给你的应用起任何你喜欢的名字。为应用程序的URL,输入您正在使用的域/ install.php.如果您在自己的机器上进行本地开发,则需要输入http://localhost/install.php.如果您的服务器不是在80端口上运行,您可能需要添加一个端口号(例如。http://localhost:8888/install.php)。

访问令牌:创建应用

4.创建应用程序后,导航到应用程序信息选项卡。下whistlists重定向URL,您将希望添加与步骤3中相同的域,这次附加/ generate_token.php例如,如果您在您的机器上进行本地开发,您将希望添加http://localhost/generate_token.php

访问令牌:url

5.滚动到此视图的底部并记录您的API密匙而且API密钥.您需要这些凭据来学习示例。

访问令牌:API密钥

下载我的示例PHP代码.下面的所有示例代码都来自这些脚本。示例代码以过程式风格编写,以便于学习核心概念。在生产环境中,您肯定希望添加更多的检查和优化。

当我们讨论url的主题时,了解更多关于什么是规范的URL以及为什么它们如此重要。

你可能还会喜欢:7个技巧,最大限度地使用Shopify API

生成访问令牌

要开始OB欧宝娱乐APP使用Shopify API处理商店数据,必须通过商店的身份验证。这意味着店主必须安装并批准你的应用程序以获得某些权限(例如,创建新产品)。这是使用一个称为OAuth的进程完成的,OAuth是应用程序之间通信的一种非常安全且常见的方法。它知道这听起来很复杂,但别担心,任何人都可以很快掌握它。

在本文中,我们将使用OAuth构建一个特殊的URL,用户可以在其中批准您的应用程序,最后生成一个特殊的令牌,您可以使用该令牌通过API访问相关商店。下面是一个流程图,概述了实现这一目标所需的所有步骤。

步骤1:收集店铺信息

当Shopify商家通过Shopify应用商店请求安装您的应用程序时,请求将被发送到您的应用程序URL商店附加参数。的值商店参数将由商家决定myshopify域名,例如http://localhost/install.php?shop=johns-apparel.myshopify.com

我们可以模拟此安装请求,方法是在服务器运行时将此URL粘贴到浏览器地址栏中,并将值替换为商店用于Shopify开发商店的域。

第二步:安装审批

一旦你有了商店老板的“myshopify.com”URL,你就需要将用户重定向到一个他们可以批准你的应用的URL。这个URL的格式如下。

https://{店}.myshopify.com/admin/oauth/authorize ? client_id ={api_key}范围={范围}&redirect_uri ={redirect_uri}

{店}
用户给您的子域“myshopify.com”URL。

{api_key}
你的API密钥是提供给你的,如上所述。

{范围}
这是您要求商店所有者接受的权限列表。对于这个例子,我们想要读取订单和修改产品的能力,所以我请求read_orders和write_products。请参阅作用域及其定义的完整列表

{redirect_uri}
用户下一步应该被发送到哪里。这是将生成令牌的脚本的URL,如下面第3步所述。

PHP代码示例

步骤3:获取接入码

如果用户已经批准了您的安装,他们将返回URL中作为查询字符串的授权代码。例如:

“?”前面的部分匹配redirect_uri美元变量。

在"?"之后是几个应该包含的参数:" code ", "hmac"和" timestamp "。“code”参数是用于OAuth进程部分的授权代码。另外两个参数用于验证请求是否确实来自Shopify。让我们先解决这个问题……

步骤3。b:验证数据

如果黑客试图以上述格式向您的服务器发送请求,该怎么办?你如何知道它确实来自Shopify,还是其他人试图恶意攻击?这就是为什么提供了“hmac”和“timestamp”。通过计算HMAC SHA256摘要,我们可以将其与传入的进行比较hmac参数并确定请求是否合法。

PHP代码示例

让我们继续使用这个“code”值来获取商店的访问令牌。我们将通过运行第一个API调用来实现这一点。

步骤4:用商店令牌交换访问码

到目前为止,我们已经拥有了生成应用程序令牌所需的一切:应用程序API密钥、应用程序密钥凭据和访问代码。

Shopify有一个特殊的API调用端点,你可以用它来“交换”你的访问代码与商店的永久API令牌:

/管理/ oauth / access_token

PHP代码示例

在上面的代码中,我们发布到Shopify的服务器,然后将OAuth生成的令牌存储到demo-shop.myshopify.com美元的令牌变量。请记住,这就像进入这个商店的密码,所以您要将这个令牌存储在一个非常安全的地方。

步骤5:进行API调用

如果你已经做到了这一步,那就意味着你已经经历了所有困难的部分!现在,只要您之前已经获得了相关范围的批准,您就可以对商店进行API调用。如果不是,则需要通过上述步骤获得一个具有必要权限的新令牌。

总之,每个API调用都需要以下细节:

  1. 商店API令牌
  2. 商店“myshopify.com”网址
  3. 与任何特殊参数一起调用的API端点

在本指南中,我们要求访问的权限(范围)之一是读取产品信息-让我们现在尝试一下。你需要的端点是/管理/ products.json

PHP代码示例

如果一切处理正确,则美元的产品变量应该包含一个JSON字符串,看起来像这样:

在返回的JSON中,我只有一个产品,ID号为370733088。让我们假设我们想要修改这个产品,那么继续这段代码,我们将以编程的方式将这个ID放入一个变量中,以便我们可以使用这个产品。

好的,现在我们有了前面提到的ID号存储在product_id美元变量。假设我想修改这个产品的标题。现有的标题,“测试”,毕竟不是很友好的用户。你需要用到它product_id美元变量,这样Shopify就知道你在修改哪个产品…

$ modify_data数组我们有所有需要的信息,我们正在发送到Shopify。该数组被转换为JSONshopify_call ()函数。为供将来参考,此API调用的需求列在Shopify API文档.您可能还注意到我们的数据交易方法是PUT。这告诉Shopify,我们正在修改数据,而不是下载或删除它。

如果此API调用成功,则将返回更新的JSON字符串modified_product_response美元变量:

如你所见,产品标题已更新,以匹配我们在modify_data美元变量。Shopify已经使他们的API非常可预测和一致。这意味着今后,您可以以类似的方式使用大多数API端点。

动态调用API

当我为Shopify开发时,我通过使用GUI进行API调用节省了大量时间。这样,在确定API包含我需要的数据之前,我就不必编写一大堆PHP代码。下面是一些不错的选择。

你可能还会喜欢:ob欧宝娱乐app下载地址营销你的Shopify应用:应用程序列表页面

熟能生巧

经过一些实践,我认为你会同意Shopify API既灵活又易于访问。它可以做很多事情,它只是在扩展对各种端点的支持。我迫不及待地想看看你能想出什么!

如果你有任何问题,可以来找我Shopify论坛或者在下方评论留言。

想了解更多关于为Shopify构建应用程序的信息吗?查看我们关于Shopify应用开发Shopify API了解更多信息,请访问:Shopify伙伴

通过Shopify合作伙伴计划发展您的业务

了解更多