【问题标题】:How do I export an entire space in storyblok in js?如何在 js 中导出 storyblok 中的整个空间?
【发布时间】:2023-01-18 04:37:20
【问题描述】:

通过阅读管理 API,我认为我应该能够从我的 js 中获取来自 storyblok 的数据。我要尝试的第一件事是导出我的整个空间,以便我可以进行外部备份。通过阅读文档,我认为以下内容应该有效,但它给了我一个 401。正确的语法是什么?

  // spaceId is discovered in Settings / Space
  fetch(
     `https://mapi.storyblok.com/v2/spaces/${spaceId}/export.json`,
     {
       headers: {
         Authorization: managementToken, // this was created in My Account / Account Settings / Personal access Token
       },
     }
  )
  .then(async (res) => {
    const json = await res.json()
    console.log(json)
  })
  .catch((err) => console.log(err));

我还想导出一个故事,我认为正确的 URL 应该是:

`https://mapi.storyblok.com/v2/spaces/${spaceId}/stories/${storyId}/export.json`

不过,我不知道如何确定 storyId。我尝试了 UID,但没有用,示例显示了一个 8 位数字。我在哪里可以找到这个号码?

注意:我在美国,对于常规抓取,我必须使用域https://api-us.storyblok.com,所以我尝试添加-us,但没有成功。

注意:我最终会尝试在同一个 js 文件中添加和修改故事。此外,必要时能够“恢复”整个空间。我希望上述解决方案适用于我将尝试的所有其他呼叫。

注意:该应用程序是用 Nuxt 3 编写的,我正在使用 useStoryblok() 成功检索数据。我可以通过遍历那里的所有内容来满足上述备份整个空间的要求,但这似乎比必要的工作更多,而且它不能解决我需要进行的其他调用的问题。

【问题讨论】:

    标签: javascript nuxtjs3 storyblok


    【解决方案1】:

    管理 API 仍在 v1 上,只有内容 API 在 v2 上: https://www.storyblok.com/docs/api 这可能对您的 401 有帮助。实际上我还假设我必须使用 v2 :)

    至于如何获取故事 ID:是的,它是简单的 ID,而不是 UUID。 你可以通过列出一些故事来获得它.../v2/spaces/SPACEID/stories?with_slug=abc

    或者在 Storyblok UI 中查看草稿/已发布的 JSON。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      • 2014-05-09
      • 1970-01-01
      • 2021-02-22
      • 2015-08-17
      • 1970-01-01
      相关资源
      最近更新 更多