Google apps script 如何用超链接添加或替换Google幻灯片笔记文本?

Google apps script 如何用超链接添加或替换Google幻灯片笔记文本?,google-apps-script,google-slides-api,Google Apps Script,Google Slides Api,我需要在幻灯片0上的演示文稿中使用Google Apps脚本创建一个便笺,其中包含一个超链接,我从Google工作表上抓取该超链接,并将其附加到该便笺上。它需要是一个注释,而不是幻灯片中的文本或图像。原因是,如果先将演示文稿置于演示模式,则该URL只能在幻灯片中“单击” 如果我手动操作,我可以创建一个notes文本,选择它并附加一个超链接。文本将更改为常规超链接外观,用户可以单击该超链接,而无需首先进入演示模式 这就是我现在的成就: slides[0].getNotesPage().getSpe

我需要在幻灯片0上的演示文稿中使用Google Apps脚本创建一个便笺,其中包含一个超链接,我从Google工作表上抓取该超链接,并将其附加到该便笺上。它需要是一个注释,而不是幻灯片中的文本或图像。原因是,如果先将演示文稿置于演示模式,则该URL只能在幻灯片中“单击”

如果我手动操作,我可以创建一个notes文本,选择它并附加一个超链接。文本将更改为常规超链接外观,用户可以单击该超链接,而无需首先进入演示模式

这就是我现在的成就:

slides[0].getNotesPage().getSpeakerNotesShape().getText().setText("juhu");
但是如何将超链接添加到字符串“juhu”中呢

如果我试图用:
.setLinkUrl()
完成它,它会告诉我:

异常:不允许在notes页元素(g7185420b90_2_454)上执行该操作。(第19行,文件“代码”)

有什么想法吗?

您需要打开,然后使用下一个代码设置幻灯片的注释链接:

let presentationId = SlidesApp.getActivePresentation().getId();
let presentation = Slides.Presentations.get(presentationId);

let slidesReqs = [];

slidesReqs.push({
  updateTextStyle: {
    objectId: presentation.slides[0].slideProperties.notesPage.notesProperties.speakerNotesObjectId,
    style: {
      link: {
        url: 'https://example.com'
      }
    },
    textRange: {
      type: 'ALL'
    },
    fields: 'link'
  }
});

Slides.Presentations.batchUpdate({'requests': slidesReqs}, presentationId);
结果:

  • 您希望将带有超链接的文本放到Google幻灯片上的备注页
  • 您希望使用谷歌应用程序脚本实现这一点
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

在这个答案中,使用了

修改点:
  • setLinkUrl()
    是类TextStyle的方法。
    • 根据您的问题,当运行
      幻灯片[0].getNotesPage().getSpeakerNotesShape().setLinkUrl(url)
      时,会发生此类错误。我想你的问题可能是这个原因
  • 为了设置文本的超链接,首先,请对TextRange的对象使用
    getTextStyle()
    。此方法返回TextStyle的对象
修改脚本: 当您的脚本被修改时,它将变成如下所示

var text = "juhu";
var url = "###";  // Please set the URL.

var slides = SlidesApp.getActivePresentation().getSlides();
var text = slides[0].getNotesPage().getSpeakerNotesShape().getText().setText(text);
text.getTextStyle().setLinkUrl(url);

参考资料:

如果我误解了你的问题,而这不是你想要的方向,我道歉。

@Thomas Holst谢谢你的回答。我很高兴你的问题解决了。
var text = "juhu";
var url = "###";  // Please set the URL.

var slides = SlidesApp.getActivePresentation().getSlides();
slides[0].getNotesPage().getSpeakerNotesShape().getText().setText(text).getTextStyle().setLinkUrl(url);