Есть ли способ заменить ссылку URL-адрес текста в Google Docs API? - PullRequest
1 голос
/ 05 апреля 2019

Я начал изучать Google Docs API в Python.Он выполняет почти все, что я хочу, кроме одной вещи.

Я могу заменить текст документа, но не могу изменить значение гиперссылок.

Значение, еслиссылка выглядит следующим образом: ссылка , я могу изменить значение текста a link, но не целевой URL.

Я просматривал документацию, но не могунайти что-нибудь об этом.Это может быть отсутствующая функция или я упускаю способ сделать это?

1 Ответ

3 голосов
/ 06 апреля 2019

Вы можете изменить гиперссылку, используя UpdateTextStyleRequest метода batchupdate в Google Docs API. В настоящее время, пожалуйста, установите свойство 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"
   }
  }
 ]
}

Примечание:

  • Из вашего вопроса я могу понять, что вы уже использовали Google Docs API, и вы можете изменить текст ссылки. Я думаю, что вы можете изменить ссылку, используя вышеуказанное тело запроса и скрипт, который у вас есть.

Ссылки:

Если это не помогло в вашей ситуации, я прошу прощения.

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": {}
              }
            }
          ]
        }
      }
    ]
  }
}

Справка:

...