我开始在Python中探索Google Docs API。除了一件事,它几乎可以做我想做的一切。
我可以替换文档的文本,但我无法更改超链接的值。
意思是如果链接看起来像这样:a link,我可以更改文本a link
的值,但不能更改目标URL。
我一直在阅读文档,但我找不到任何相关信息。这可能是一个缺失的功能还是我错过了这样做的方法?
您可以使用Google Docs API中的batchupdate方法的UpdateTextStyleRequest修改超链接。这时,请设置Link
的TextStyle
的属性。
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"
}
}
]
}
如果这对你的情况没用,我道歉。
从您的回复评论中,我可以像上面那样理解。当我理解正确时,您可以使用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": {}
}
}
]
}
}
]
}
}