0

这是我想要完成的任务?

1- 每晚对新闻 API 进行 fetch 调用 2- 获取最新头条新闻 3- 导入到 Sanity...

理智允许你这样做吗?它有 cron 任务吗?

谢谢,

4

1 回答 1

2

Sanity 没有提供任何本地方式来执行此操作,但您可以使用外部无服务器提供程序创建 cron 作业,该提供程序执行您正在寻找的功能

Firebase 计划函数是提供程序的一个示例,但还有更多选项。我建议看一下无服务器框架示例

在你弄清楚你将使用什么之后,然后使用Sanity 的 HTTP API他们的 API 客户端之一@sanity/client用于 Javascript)将数据添加到其中。您需要一个令牌来执行此操作,因为 POST 请求受到身份验证墙的保护(查看他们的身份验证文档)。

这是 Javascript 中的示例:

// For Javascript - using the @sanity/client npm package
const allHeadlines = await pullHeadlines(/* ... */);

// Create a single transaction that will handle
// the creation of all headline documents
const transaction = sanityClient.transaction();
for (const headline of allHeadlines) {
  transaction = transaction.create({ title: headline.title, ...headline });
}

transaction
  .commit()
  .then((res) => {
    console.log("All headlines created");
    // Finish the cron job here
  })
  .catch((error) => {
    console.error("Couldn't create the headline documents", error);
    // Maybe retry it here?
  });

希望有帮助,帖木儿

于 2020-10-26T15:32:27.860 回答