Google应用程序脚本网络应用程序,如何创建登录按钮?

2024-02-15

我在 Google Drive 中创建了由 Google 电子表格支持的脚本,并将其发布为网络应用程序,设置“执行应用程序为:我”和“谁有权访问该应用程序:任何人,甚至匿名”。主页提供电子表格中的 html 内容。

基本功能是:“随机互联网用户”能够看到一些信息,而使用其 Google 帐户登录的用户也能够提交信息。

问题是 - 如果我将权限设置为“任何人”,人们首先会被重定向到标准的谷歌登录页面,并且登录后必须接受脚本权限。完成后,只要您使用 Google 帐户登录,导航到网络应用程序就会显示“已登录用户”版本。

但是 - 如果网络应用程序设置为允许“匿名用户”,则似乎没有任何(至少是明显的方式)允许匿名用户登录并接受应用程序权限。

到目前为止我已经尝试过的:

  • 如果网络应用程序要求用户登录,则如果我未登录,谷歌会将我重定向到网址的链接。这可行,但我觉得这不是正确的方法,而且一旦登录,就没有办法了注销或切换帐户;似乎一旦登录,就永远登录了
  • to use https://developers.google.com/apps-script/reference/script/authorization-info#getAuthorizationUrl() https://developers.google.com/apps-script/reference/script/authorization-info#getAuthorizationUrl()获取身份验证网址 - 但我不知道如何使用它返回的网址(将用户导航到顶部框架上的网络应用程序框架中的该页面都会导致空白页面)

如何获取登录(可能还有切换登录)URL 以允许匿名用户登录我的网络应用程序?


为 2 个 .gs Web 应用程序项目创建了示例代码:one https://script.google.com/d/1GKhyJCvWfp11bJBP30u5MuC-Qx3ld0nGPevJjMnxl1HrWahDku_obQ52/edit?usp=sharing- 无需身份验证,以所有者身份运行,匿名可以访问two https://script.google.com/d/1DwYTfnsRzZ6eFA8zzWpMvtfQjDO3oa2t28N1d9w3_toO0pz3stxxkm5e/edit?usp=sharing- 需要身份验证,以用户身份运行,任何人都可以访问

...因为我不知道您的“我可以将用户重定向到 URL”语句在代码中是什么样子。

第一个文件有一个带有点击侦听器的按钮作为登录按钮,但它只是调用window.top.location.href改变。 第二个应用程序正在使用ScriptApp.invalidateAuth();从客户端按钮单击调用后注销用户。

Demo https://script.google.com/macros/s/AKfycbxVKXU_5wSRO_OxQ1nVB9sRe5P8rAvy6J7SYQSIPk0hiWEMJPsd/exec- 第一个网络应用程序网址

我仍然投票选择只提供第二个网络应用程序作为在新窗口中弹出的链接,正如我在评论中指出的那样,上面的设置强制用户每次和注销后重新授权。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google应用程序脚本网络应用程序,如何创建登录按钮? 的相关文章

  • 在 Google 表格中创建每周/每月/每年折线图,以汇总同一周/月/年范围内的金额

    我想创建一个代表两列数据的折线图 F 输入日期 和 H 美元金额 X 轴应为日期 Y 轴应为美元金额 问题是我希望折线图上的日期代表给定周 月或年输入的所有金额的总和 这张照片是 YouTube 分析的 它创建了一个与我想在工作表中创建的类
  • Django all-auth:如何禁用通过 Google 自动登录

    我正在使用 django allauth 包通过 Google API 让用户登录到我的 Django 应用程序 我的问题是 当用户通过外部 Google 登录页面成功登录时 每次他注销并想要再次登录时 django allauth 都会自
  • 如何像函数一样使用 google.script.run

    在 Google Apps 脚本中 我有以下脚本 function doGet return HtmlService createHtmlOutputFromFile mypage function writeSomething retur
  • 从 Azure 调用 Google API:“访问被拒绝”

    我正在尝试创建一个可以管理 Google 日历并访问 Google People 的聊天机器人 我开发了代码 它可以完美地离线工作 当尝试在线上传所有内容时就会出现问题 代码是C 语言 在微软提供的模板之上开发 当您在 Azure 上加载代
  • 如何在Google工作表中添加类似于Excel中的表单控件滚动条的水平滚动条?

    我想添加一个水平滚动条 它将根据其位置提供 0 365 的值 并使用该值进行计算 我正在创建一个甘特图 与页面上的相同https www vertex42 com ExcelTemplates excel gantt chart html
  • 自动递增 ID 号 Google Apps 脚本

    我想在向工作表添加新值时自动增加 ID 我尝试从当前的 ID 列表创建一个列表 但它只计数到 5 因此当自动递增时 它只会到达一个点并为每个输入保存该数字 以下是我尝试获取 ID 号列表的方法 但它没有获取整个列表 我缺少什么 var ss
  • 如何在运行脚本之前提交活动单元格中所做的更改? (Google 表格/Google Apps 脚本)

    我正在使用 Google Apps 脚本在 Google 表格中创建提交表单 该表单位于一页上 提交内容被移至第二个隐藏页面 当用户填写表单后 他们按下提交页面上的按钮以激活脚本 我遇到的问题是 当用户填写最后一个单元格然后单击按钮时 输入
  • HTML 格式的 Google Apps 脚本

    是否可以在我的 HTML 中使用 google apps 脚本 我希望能够从外部框架 例如 Node js 以纯 Javascript 形式从表单写入电子表格 https developers google com apps script
  • OAuth 同意屏幕未显示

    最近在我的本地开发中实现了 Google 登录 一切工作正常 除了当我选择我的 Google 帐户之一登录时 同意屏幕不会显示 它确实获得了授权 因为我可以在中看到我的网站连接到您帐户的应用程序我的帐户部分 我已经配置好了OAuth 同意屏
  • Google 电子表格中带有 len 的 Countif

    我有一个像这样的 XXX 列 XXX A Aruin Avolyn B Batracia Buna 我想仅当单元格中的字符串长度 gt 1 时才对单元格进行计数 怎么做 我想 COUNTIF XXX1 XXX30 LEN gt 1 但我应该
  • 阅读 Google 文档电子表格

    是否可以使用 PHP 从 Google Docs 电子表格中提取行 在 SQL 中我会使用类似的东西 SELECT FROM table WHERE field value LIMIT 1 有没有办法做到这一点 我听说你应该使用 Zend
  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • Google 表格 - ARRAYFORMULA 中的 VLOOKUP

    我正在尝试在 Google 表格中的数组公式内进行 Vlookup 我有两张纸 S1 和 S2 每个列都有 3 个相同的列 A 列 日期 B 列 名称 和 C 列 付款类型 我想根据日期和姓名组合匹配将付款类型从表 2 读取到表 1 这意味
  • 在 Google Apps 脚本中,如何为我实现的服务设置 HTTP 响应代码?

    假设我有一个返回 XML 文档的 服务 function doGet var result
  • 从电子表格脚本中调用 Web 应用程序脚本?

    如何从 Google 电子表格容器中的脚本调用外部 Google Web App 脚本 我有许多动态创建的电子表格 并希望它们全部调用一个 Web 应用程序 以实现一致性和易于维护 看看这篇博文 触发主从电子表格之间的更新 http www
  • 使用 Google Apps 脚本处理数组中输入元素中的多个文件

    我有一个表单 允许从下拉列表中选择一个项目并上传文件 项目的名称和 ID 保存在电子表格文档中 适用于一个文件 但我想上传多个文件 你能帮我修改一下脚本吗 HTML 部分如下所示 div class col md 4 col sm 6 di
  • 谷歌脚本循环性能

    我是 google 脚本的新手 我不确定为什么与 Excel VBA 的简单循环相比 我的性能如此差 我附上了下面的代码 它是一个大约 1200 行的循环 每秒删除大约 2 3 行 我写的脚本效率很低吗 我还不熟悉 Javascript 但
  • 如何将值传递到 HTML 模板侧边栏?

    我的任务是更换一些现有的 Access 数据库 我想知道你们是否可以帮助我 目前 我有一个谷歌表格 https docs google com spreadsheets d 1JS5Iwx60Zk7VL8lYz6Yj7ew4eYPhl2Nk
  • 根据表单提交创建名称的新工作表

    在 Google Sheets 中 我有一个脚本 用于为提交的每个 Google 表单创建一个新工作表 它应该创建一个新工作表 其名称基于最后一列 G 列 不是表单提交的列 然后 它从最后一行和标题行获取信息并将其复制到创建的工作表的前两行
  • XPath 将元素中的所有文本作为一个值获取,删除换行符

    我试图获取以下一组节点中的所有文本并作为一个值返回 而不是多个节点 p I love eating out br br This is my favorite restaurant br I will definitely be back

随机推荐

  • 我的应用或其依赖项是否违反了 Android 广告 ID 政策?

    我刚刚收到来自 Google Play 的这条消息 但我没有收集广告 ID 警告原因 违反Android广告ID使用 政策和开发者分发协议第 4 8 条 Google Play 要求开发者在以下情况下提供有效的隐私政策 应用程序请求或处理敏
  • 如何在运行时修改 web.config appSettings?

    我对如何在运行时修改 web config appSettings 值感到困惑 例如 我有这个 appSettings 部分
  • 为什么 Haskell 不能正确排序这些 IO 操作?

    我的一个朋友问我为什么要学习 Haskell 为了展示 Haskell 的强大功能 我编写了一个小程序来显示素数列表 main do putStr Enter the number of prime numbers to display n
  • 在 VB.NET 表单之间传递数据

    我有一个带有按钮的表单 单击时会弹出一个对话框表单 在此对话框中 用户需要选择一些数据 完成后单击 确定 按钮 一旦他们单击 确定 按钮 它需要将一个整数返回到之前的形式 我创建了一个对话框表单并尝试通过以下代码调用它 Dim intRes
  • JsTree 与 jquery.validate 冲突

    我有一个 Jstree 填充项目列表 当我单击一个节点时 会使用 ajax 加载部分节点 一切正常 直到我包含 jquery validate 脚本来验证我的表单
  • 无法在 Flutter 中使用 Firebase Auth 进行注册

    我正在为我的应用程序使用 Firebase 我已正确设置所有内容 并且 Firebase Firestore 工作正常 没有任何问题 我能够在那里读取和写入数据 但是当我尝试在 Firebase 中创建用户时 我在调试控制台中收到此消息 I
  • 如何在 nightwatch.js 中使用链接文本单击链接

    假设我的网页上有这些元素 a href dynamic1 One a a href dynamic2 Two a a href dynamic3 Three a 我想点击带有文字的链接Two 如何使用链接文字没有任何独特的属性 如 id 或
  • typescript Symbol.iterator

    我正在尝试创建一个自定义的可迭代对象 这是我的代码的简化示例 class SortedArray Symbol iterator yield 1 yield 2 yield 3 return 4 const testingIterables
  • 在 std::map 中搜索特定值[重复]

    这个问题在这里已经有答案了 可能的重复 检查 std map 中是否存在值 C https stackoverflow com questions 535317 checking value exist in a stdmap c 如何遍历
  • Unity中的LoadScene()函数什么时候改变场景?

    当您调用函数 LoadScene 时 它是立即切换场景 还是只是表示场景需要更改 LoadScene 的文档没有说 我正在使用的具体示例如下所示 LoadScene levelName ItemBox newBox ItemBox Inst
  • 在 Spring 中将 SOAP 1.2 与 WebServiceGatewaySupport 结合使用

    我对 Spring 框架非常陌生 在使用 Spring 创建一个简单的 SOAP 客户端时遇到了一些问题 像一个好的新手一样 我使用 Spring 教程来制作我的 SOAP 客户端 你可以在这里找到它 gt https spring io
  • Unity游戏画面模糊

    我的 Unity 游戏屏幕有问题 当我切换到游戏屏幕时 所有精灵都模糊了 场景视图非常好 但游戏场景很模糊 在 Sprite 的 Unity Inspector 中 您可以将 Generate Mip Map 设置为 false 或者您可以
  • 类叶组件中的 connect() 是 React+Redux 中反模式的标志吗?

    目前正在从事 React Redux 项目 我也在用归一化 https github com gaearon normalizr处理数据结构和reselect https github com reactjs reselect为应用程序组件
  • 如何使用 pip 从 git 子目录进行安装?

    我有一个包含许多文件夹的 git 存储库 其中一个是可使用 pip 安装的 python 模块 如下所示 repo git repo git folder1 repo git folder2 repo git mymodule repo g
  • 如何在 AWK 3.1.3 中按定义的顺序打印数组

    我用 google 搜索了一下 发现在 AWK 4 0 之后 我们可以通过在 for 循环之前放置 PROCINFO sorted in 命令来按定义的顺序打印数组 例如 PROCINFO sorted in ind num asc for
  • 关联类的正确使用

    我是 UML 的新手 我不确定我的图表是否正确 我希望得到比我更有经验的人的建议 我的问题的陈述说 学生学习课程 每个学生可以选修几门课程 每门课程 学习 任何课程都可以有多个学生学习 学生由数字代码识别 有姓名 出生日期和一个或多个国籍
  • 使用 javascript 将数据从一个域发送到另一个域(我可以访问两个网页的 )

    我可以访问两个页面上都有标签 我需要将数据从一个页面发送到另一页面 两个页面都位于不同的域中 页面 A 域 www foo com http www foo com 页面 B 域 www bar com http www bar com 如
  • C++ stringstream >> int 返回零

    我正在编写一个函数来返回数字的反转 即它转换int 1234 to int 4321 这就是我目前所拥有的 include
  • eclipse的jade模板语法支持吗?

    我刚刚开始使用nodejs 模板引擎jade 不幸的是 我的 IDE eclipse 似乎不支持此语法 并且无法正确突出显示 是否可以向 eclipse 添加对 jade 文件的支持 作为 Nodeclipse 工作 www nodecli
  • Google应用程序脚本网络应用程序,如何创建登录按钮?

    我在 Google Drive 中创建了由 Google 电子表格支持的脚本 并将其发布为网络应用程序 设置 执行应用程序为 我 和 谁有权访问该应用程序 任何人 甚至匿名 主页提供电子表格中的 html 内容 基本功能是 随机互联网用户