在Shopify公共应用程序中创建API并在Postman中调用它

问题描述 投票:0回答:1

我使用yarn create @Shopify/app 创建了shopify 公共应用程序。我得到的 NodeJS 代码模板将包含 oAuth 进程和会话令牌。以下是我在shopify公共应用程序中创建的API。

现在,当我在邮递员中调用此 API 时,出现以下错误

我不知道如何给出商店名称以及在哪里获取商店名称和access_token?我想问一下,在其他软件中是否可以调用shopify公共应用程序中创建的API?它将充当第三方集成。请有人指导我。

shopify shopify-app shopify-api shopify-api-node
1个回答
1
投票

不幸的是,Express Shopify 应用程序与您通常的 Express 应用程序不同。当客户安装您的应用程序时,他们会被识别并作为“会话”存储在您的数据库中。正如您所看到的,返回的错误是“未提供商店”。

“店铺”等信息由前台提供。在引擎盖下,“前端”有添加商店的代码,还有一个安全授权标头、一个“Bearer”令牌useAuthenticatedFetch.js

等等前端代码,可能看起来很简单,ProductsCard.jsx:

const response = await fetch("/api/products/create");

不幸的是,不记名令牌密钥关闭了时间戳,时间戳确实会过期,因此您需要快速生成令牌并将其复制粘贴到邮递员中。

编辑:我找到了答案,答案就在我们面前。抱歉我之前没看到这个。

// If you are adding routes outside of the /api path, remember to
// also add a proxy rule for them in web/frontend/vite.config.js

我正在开发一条名为

/dogs
的路线。我在
web/frontend/vite.config.js

中添加了狗
# web/frontend/vite.config.js
    proxy: {
      "^/(\\?.*)?$": proxyOptions,
      "^/api(/|(\\?.*)?$)": proxyOptions,
      "^/dogs(/|(\\?.*)?$)": proxyOptions,

然后在服务器端我可以添加

/dogs

app.use(express.urlencoded({ extended: true }));
app.use("/api/*", shopify.validateAuthenticatedSession());

app.use("/dogs", dogRoutes);

现在我可以轻松到达路线,而无需出现身份验证问题,例如

Shop null

© www.soinside.com 2019 - 2024. All rights reserved.