有没有办法替换 Google Docs API 中文本的 URL 链接?

2024-05-18

我开始用 Python 探索 Google Docs API。它几乎可以完成我想要它做的所有事情,除了一件事。

我可以替换文档的文本,但无法更改超链接的值。

意思是如果链接看起来像这样:a link http://www.example.com/,我可以改变文本的值a link但不是目标 URL。

我一直在浏览文档,但找不到任何相关内容。这可能是一个缺失的功能,还是我错过了这样做的方法?


您可以使用 Google Docs API 中的批量更新方法的 UpdateTextStyleRequest 修改超链接。此时请设置Link of TextStyle.

Endpoint

POST https://docs.googleapis.com/v1/documents/{file ID}:batchUpdate

请求正文:

{
 "requests": [
  {
   "updateTextStyle": {
    "textStyle": {
     "link": {
      "url": "https://sampleUrl"  # Please set the modified URL here.
     }
    },
    "range": {
     "startIndex": 1,
     "endIndex": 2
    },
    "fields": "link"
   }
  }
 ]
}

Note:

  • 从您的问题中,我了解到您已经使用了Google Docs API,您可以修改链接文本的文本。我认为您可以使用上面的请求正文和您拥有的脚本修改链接。

参考:

  • 更新文本样式请求 https://developers.google.com/docs/api/reference/rest/v1/documents/request#updatetextstylerequest
  • 文本样式 https://developers.google.com/docs/api/reference/rest/v1/documents#TextStyle
  • Link https://developers.google.com/docs/api/reference/rest/v1/documents#Link

如果这对您的情况没有用,我深表歉意。

Edit:

  • 您想要检索带有超链接的文本。

从你的回复评论中,我可以像上面那样理解。当我的理解正确时,您可以使用以下方法检索它documents.get方法。在这种情况下,当fields使用后,响应变得易于阅读。

端点:

GET https://docs.googleapis.com/v1/documents/{file ID}?fields=body(content(paragraph(elements(endIndex%2CstartIndex%2CtextRun(content%2CtextStyle%2Flink%2Furl)))))
  • 在此端点中,body(content(paragraph(elements(endIndex,startIndex,textRun(content,textStyle/link/url)))))用作fields.

响应示例:

例如,当以下文本放入 Google 文档并def有一个超链接,

abc
def

回复如下。从下面的结果中,您可以检索可以检索超链接的文本位置。使用它,您可以修改超链接。

{
  "body": {
    "content": [
      {},
      {
        "paragraph": {
          "elements": [
            {
              "startIndex": 1,
              "endIndex": 5,
              "textRun": {
                "content": "abc\n",
                "textStyle": {}
              }
            }
          ]
        }
      },
      {
        "paragraph": {
          "elements": [
            {
              "startIndex": 5,
              "endIndex": 8,
              "textRun": {
                "content": "def",
                "textStyle": {
                  "link": {
                    "url": "https://sample/"
                  }
                }
              }
            },
            {
              "startIndex": 8,
              "endIndex": 9,
              "textRun": {
                "content": "\n",
                "textStyle": {}
              }
            }
          ]
        }
      }
    ]
  }
}

参考:

  • 文档.get https://developers.google.com/docs/api/reference/rest/v1/documents/get
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法替换 Google Docs API 中文本的 URL 链接? 的相关文章

随机推荐