在 Strapi CMS 中创建 post 时如何执行特定操作?
How to perform certain action when a post is created in Strapi CMS?
我正在使用 Strapi CMS 通过 NoSQL 数据库处理数据。
所以,我想做的是在 Medium 上发布博客,同时在 Strapi CMS 上发布它。
我拥有使用 API 在媒体上发布它的所有凭据。
所以,问题是如何实现这一点,当 post 创建或更新 时,如何在 Strapi CMS 中执行特定操作,以便我可以获取数据并通过 POST 请求发送到 Medium。
所以在 Ghosh 的一些研究和指导之后,我开始了解 Strapi 默认提供的 webhooks。
这些钩子与 React Lifecycle Hooks 有点相同
关于钩子的更多信息:Here
因此,对于我的情况,我必须添加一个挂钩,它会在创建博客 post 后触发一些操作。
所以,在 api/blog/models/{blog}.js
中,我添加了这段代码
"use strict";
const fetch = require("node-fetch");
module.exports = {
lifecycles: {
async afterCreate(data) {
const body = {
title: data.title,
contentFormat: "markdown",
content: data.blog_data,
tags: [],
};
const response = await fetch(
`https://api.medium.com/v1/users/${process.env.CLIENT_SECRET}/posts?accessToken=${process.env.ACCESS_TOKEN}`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body),
}
);
},
},
};
我正在使用 Strapi CMS 通过 NoSQL 数据库处理数据。 所以,我想做的是在 Medium 上发布博客,同时在 Strapi CMS 上发布它。
我拥有使用 API 在媒体上发布它的所有凭据。
所以,问题是如何实现这一点,当 post 创建或更新 时,如何在 Strapi CMS 中执行特定操作,以便我可以获取数据并通过 POST 请求发送到 Medium。
所以在 Ghosh 的一些研究和指导之后,我开始了解 Strapi 默认提供的 webhooks。
这些钩子与 React Lifecycle Hooks 有点相同
关于钩子的更多信息:Here
因此,对于我的情况,我必须添加一个挂钩,它会在创建博客 post 后触发一些操作。
所以,在 api/blog/models/{blog}.js
中,我添加了这段代码
"use strict";
const fetch = require("node-fetch");
module.exports = {
lifecycles: {
async afterCreate(data) {
const body = {
title: data.title,
contentFormat: "markdown",
content: data.blog_data,
tags: [],
};
const response = await fetch(
`https://api.medium.com/v1/users/${process.env.CLIENT_SECRET}/posts?accessToken=${process.env.ACCESS_TOKEN}`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(body),
}
);
},
},
};