通过本地react应用程序从 Google Sheet 获取数据的不一致响应

IT技术 reactjs google-sheets fetch
2021-05-23 05:20:50

我制作了一个 create-react-app,我在我的机器上构建并静态运行它作为 OBS 插件,没有使用 Hashrouter 的服务器。我正在从我设置为公开的 Google 表格中获取数据。使用这种格式的 url,https://spreadsheets.google.com/feeds/list/{SpreadsheetID}/{sheetNo}/public/values?alt=json我能够以 JSON 的形式获取数据以在我的应用程序中使用。但是,由于应用程序没有变化,过去一周的react变得不一致。

当我在浏览器中访问 URL 时,它永远不会无法加载 JSON 的纯文本版本。但是,在我的应用程序中发送 GET 请求时,我有 60% 的时间遇到​​ 404 错误。我在我的请求中尝试了不同的标题,但我似乎找不到任何一致的作品。

这是我执行提取的函数。我从 useEffect 钩子中调用它。

const getData = async (url) => {
  try {
    const response = await fetch(url);
    if (!response.ok) {
      throw new Error(`fetch error. status: ${response.status}`);
    }
    return await response.json();
  } catch (err) {
    return err;
  }
};

我收到的 404 响应说:“抱歉,目前无法打开文件。请检查地址并重试。”

我认为这与我在没有运行服务器的情况下从本地文件调用这一事实有关。如果可能的话,我想保持这种方式,只是为了让 OBS 操作员的工作变得简单。我已经尝试向我的 fetch url ( key={APIKEY})添加一个 API 密钥,但这似乎没有任何区别。关于可能导致这种行为的任何想法?

1个回答

这是一个已知问题。请参阅此线程。 https://support.google.com/docs/thread/121088347