我正在创建一个应用程序,其功能是在在线商店中安装后创建一个新页面。
我使用 shopify CLI 创建了一个测试应用程序,并在 gdpr.js 中的 APP_UNINSTALLATION 主题上添加了一个 Webhook。我将回调 URL 附加到异步函数,以使用本指南在在线商店上创建新页面:https://shopify.dev/docs/api/admin-rest/2023-07/resources/page#post-pages 。我的代码:-
gdpr.js
APP_UNINSTALLED: {
deliveryMethod: DeliveryMethod.Http,
callbackUrl: "/api/webhooks/create-new-page",
callback: async (topic, shop, body, webhookId) => {
const payload = JSON.parse(body);
console.log("payload : ", payload);
},
}
index.js
async function createNewPageUponInstall(session) {
const newPage = new shopify.api.rest.Page({session: session});
newPage.title = "Dynamic App Page"
newPage.body_html = "<p>This is a new page</p>"
await newPage.save({
update: true,
});
}
app.post("/api/webhooks/create-new-page", async (_req, res) => {
try {
await createNewPageUponInstall(res.locals.shopify.session);
res.sendStatus(200);
} catch (error) {
console.error("Error handling webhook:", error);
res.sendStatus(500);
}
});
该应用程序无法按照我的预期创建页面。附:我在 APP_INSTALLATION 上找不到 Webhook 主题,因此正在使用 APP_UNINSTALLATION 测试行为。任何帮助将不胜感激!
创建页面的最简单方法是对为此目的指定的端点进行 API 调用。 RestAPI 有一个您可以使用的。
https://shopify.dev/docs/api/admin-rest/2023-07/resources/page
从中可以看到要发送的参数,以及预期的结果。