运行 与其他用户一样以某种方式打开的高级 API

Running Advanced APIs As Other Users onOpen Somehow

我正在制作一个脚本,当您打开它时,它会添加对 PewDiePie 的订阅。我让它部分工作。当我打开它时它可以工作,但我认为它不像我预期的那样像其他用户一样工作。当 运行 与其他人一样时,是否有关于如何让它发挥作用的想法?这是我的代码:

`function onOpen() {
  isEdited()
}
function isEdited() {

      var MyDoc = DocumentApp.getActiveDocument().getBody();
      var Text = MyDoc.editAsText().getText();
      var DocLen= Text.length;
      if(DocLen!= PropertiesService.getDocumentProperties().getProperty('DocLen'))
      {
        addSubscription();  
        PropertiesService.getDocumentProperties().setProperty('DocLen', DocLen)
      }    
    }
function addSubscription() {
  var channelId = 'UC-lHJZR3Gqxm24_Vd_AJ5Yw';
  var resource = {
    snippet: {
      resourceId: {
        kind: 'youtube#channel',
        channelId: channelId
      }
    }
  };`

我实际上有一个可能可行的想法,但我不知道该怎么做,而且我在任何地方都找不到。我的想法是让它作为打开它的用户创建一个可安装的触发器 onOpen。嗯是的。 我应该解决的问题: isEdited 是我从 Internet 上得到的东西。它完成了工作,但无论出于何种原因,onOpen 似乎都不起作用。 谢谢!

I am making a script that adds a subscription to PewDiePie when you open it.

希望您在添加订阅之前征得用户的同意

create an installable trigger onOpen as the user who opened it

您无法按照自己的方式创建可安装触发器。用户可以创建自己的可安装触发器,但用户 X 无法为用户 Y 创建可安装触发器。

可安装触发器的文档@https://developers.google.com/apps-script/guides/triggers/installable#restrictions


如果我想实现这样的东西,我会怎么做:

  • 使用 google 应用程序脚本创建网络应用程序以创建订阅并部署它以作为 运行 用户
  • 执行
  • 创建调用网络应用程序的函数
  • 创建一个菜单和一个菜单项,用户应单击这些菜单项以通过函数调用 Web 应用程序

网络应用文档@https://developers.google.com/apps-script/guides/web

有关如何调用网络应用程序的文档@https://developers.google.com/apps-script/reference/url-fetch/

创建菜单的文档@https://developers.google.com/apps-script/guides/menus