【问题标题】:How to perform certain action when a post is created in Strapi CMS?在 Strapi CMS 中创建帖子时如何执行某些操作?
【发布时间】:2021-07-11 12:36:04
【问题描述】:
我正在使用 Strapi CMS 来处理 NoSQL 数据库的数据。
所以,当我在 Strapi CMS 上发布博客时,我想做的是在 Medium 上发布博客。
我拥有使用 API 在媒体上发布它的所有凭据。
所以,问题是如何实现这一点,如何在创建或更新帖子时在 Strapi CMS 中执行某个操作,以便我可以获取数据并发送到Medium通过 POST 请求。
【问题讨论】:
标签:
javascript
node.js
rest
content-management-system
strapi
【解决方案1】:
所以经过Ghosh 的一些研究和指导,我开始了解 Strapi 默认提供的 webhook。
这些钩子有点像 React 生命周期钩子
更多关于钩子的信息:Here
所以对于我来说,我必须添加一个钩子,它会在创建博客文章后触发一些操作。
所以,在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),
}
);
},
},
};