为什么从谷歌文档api返回json中的等式对象为空



我正试图使用谷歌文档api获取谷歌文档内容,但我发现从谷歌文档api返回的json缺少eqaution信息。

示例内容:-谷歌文档摘录请求示例:-

const baseUrl = `https://docs.googleapis.com/v1/documents/${doc_id}`
const response = await googleReq(baseUrl, ctx.accessToken).then(res => {
let data = res.json()
return data
}).catch(err => console.log(err))
const googleReq = (url, token) => {
if (!token) return new Error("No accessToken")
return fetch(url, {
method: 'GET',
headers: {
Authorization: `Bearer ${token}`
}
})
}
example response :- 
...
{
"startIndex": 321,
"endIndex": 330,
"equation": {}
}
...

正如您所看到的,等式块没有返回任何内容。我不知道为什么会这样。

答案:

不幸的是,目前您无法从Google Docs API获取方程信息

更多信息:

根据开发人员文档,API返回的equation块应包含:

  • suggestedInsertionIds[]
  • suggestedDeletionIds[]

这些ID将是字母数字字符串,指示编辑器将插入或删除的建议。

此块将不包含任何公式文本或其他相关信息。

唯一的方法:

目前,只有一种方法可以通过编程获得公式文本,那就是使用Google Apps Script方法。

这样做的一个示例脚本是:

// Copyright 2021 Google LLC.
// SPDX-License-Identifier: Apache-2.0
function getEquations() {
const searchElementType = DocumentApp.ElementType.EQUATION
const documentBody = DocumentApp.getActiveDocument().getBody()
const searchResult = null
while (searchResult = documentBody.findElement(searchElementType,searchResult)) {
let par = searchResult.getElement().asEquation()
console.log("Search Result : " + par.getText())
}
}

作为一种解决方法,您可以将其部署为一个web应用程序,将公式文本作为JSON内容提供,然后使用JavaScript中的fetch API获取这些数据,而不是直接使用Google Docs API。

功能请求:

然而,你可以让谷歌知道,这是一个对访问他们的API很重要的功能,你想要求他们实现它

谷歌的Issue Tracker是开发人员报告问题并为其开发服务提出功能请求的地方,我敦促您在那里提出功能请求。最好的归档组件是带有Feature Request模板的GoogleDocs组件。

参考文献:

  • REST资源:文档| Google文档API | Google开发者
  • 枚举元素类型|应用程序脚本|谷歌开发者
  • 类文档应用程序|应用程序脚本|谷歌开发者
  • 类ContainerElement |应用程序脚本|谷歌开发者

基于Web应用程序的工作循环参考:

  • Web应用程序|应用程序脚本|谷歌开发者
  • 内容服务|应用程序脚本|谷歌开发者
    • 从脚本提供JSON
  • 类ContentService |应用程序脚本|谷歌开发者

相关内容

  • 没有找到相关文章