You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python调用Google Slides API插入带超链接的文本?

在Python中使用Google Slides API插入带超链接的文本

要实现这个需求,核心是通过API的batchUpdate方法组合多个请求:先插入文本(或使用已有文本框),再为指定文本范围添加超链接格式。以下是具体实现步骤和代码示例:

前提准备

确保你已经完成Google Slides API的授权配置,获取到有效的Credentials对象,并且拥有演示文稿的编辑权限(权限范围需包含https://www.googleapis.com/auth/presentations)。

代码实现

场景1:新建文本框并插入带超链接的文本

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

# 加载授权凭证(替换成你的token文件路径)
creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/presentations'])
service = build('slides', 'v1', credentials=creds)

# 替换成你的演示文稿ID和目标幻灯片ID
presentation_id = 'your_presentation_id'
slide_id = 'your_slide_id'

# 构造批量请求
requests = [
    # 1. 创建文本框(可跳过如果已有目标文本框)
    {
        "createShape": {
            "objectId": "custom_text_box",
            "shapeType": "TEXT_BOX",
            "elementProperties": {
                "pageObjectId": slide_id,
                "size": {
                    "width": {"magnitude": 6000000, "unit": "EMU"},
                    "height": {"magnitude": 1200000, "unit": "EMU"}
                },
                "transform": {
                    "scaleX": 1,
                    "scaleY": 1,
                    "translateX": 1500000,
                    "translateY": 2000000,
                    "unit": "EMU"
                }
            }
        }
    },
    # 2. 插入文本内容
    {
        "insertText": {
            "objectId": "custom_text_box",
            "text": "查看官方文档 了解更多"
        }
    },
    # 3. 给指定文本范围添加超链接
    {
        "updateTextStyle": {
            "objectId": "custom_text_box",
            "textRange": {
                "startIndex": 0,
                "endIndex": 6  # 对应"查看官方文档"这几个字
            },
            "style": {
                "link": {
                    "url": "https://developers.google.com/slides/api"
                }
            },
            "fields": "link"
        }
    }
]

# 执行批量更新
response = service.presentations().batchUpdate(
    presentationId=presentation_id,
    body={"requests": requests}
).execute()

print(f"文本框已创建,ID: {response['replies'][0]['createShape']['objectId']}")

场景2:给现有文本框中的文本添加超链接

如果已经有现成的文本框,只需跳过createShape请求,直接使用目标文本框的objectId执行insertText和updateTextStyle即可。

关键说明

  • textRange参数:可以通过startIndex和endIndex精准指定要添加超链接的文本范围;如果要给全部文本加链接,可设置"type": "ALL"。
  • EMU是Google Slides使用的单位,1 EMU = 1/914400英寸,可根据需求调整文本框的大小和位置。
  • 所有请求需放入batchUpdate的requests数组中,API会按顺序执行这些操作。

内容的提问来源于stack exchange,提问作者zvz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:23:09