从今天早上开始,我就遇到了一个问题,使用 Apps 脚本部署的 web 应用程序以前运行良好。当然,没有做出任何改变来证明这个问题的合理性。
外部脚本不会从 HTML 端加载,并且控制台中会出现新错误。
为了有一个可重现的例子:
代码.gs
function doGet() {
var template = HtmlService.createTemplateFromFile('index');
return template.evaluate()
.setTitle('TEST')
.addMetaTag('viewport', 'width=device-width, initial-scale=1')
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
}
Run Code Online (Sandbox Code Playgroud)
索引.html:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body>
<div id="title">Hello</div>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
<script>
window.onload = function() {
console.log('loaded');
console.log($('#title').html());
}
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
控制台中的结果:
[ERROR] This document requires 'TrustedHTML' assignment. (jquery.min.js:2)
[ERROR] Uncaught TypeError: Failed to set the 'innerHTML' property on 'Element': This document requires 'TrustedHTML' assignment. (jquery.min.js:2)
[LOG] loaded …
Run Code Online (Sandbox Code Playgroud) 我编写了一个 Python 脚本(Google_add.py),用于在 Google Workspace 中创建用户。然而,当它运行时,发生了 AttributeError 。如何解决此错误?
\n\xe3\x83\xbbGoogle_add.py\xe3\x80\x80(摘录\xef\xbc\x89
\nPATH = \'/opt/Google/credentials.json\'\nCLIENT_SECRETS = \'/opt/Google/client_secrets.json\'\ncredentials = None\n\n#If there are credentials\nif os.path.exists(PATH):\n credentials = Credentials.from_authorized_user_file(\n path = PATH,\n scopes = SCOPES)\n\n#If there are no (valid) credentials available\nif not credentials or not credentials.valid:\n if credentials and credentials.expired and credentials.refresh_token:\n credentials.refresh(Request())\n else:\n FLOW = flow.InstalledAppFlow.from_client_secrets_file(\n client_secrets_file = CLIENT_SECRETS,\n scopes = SCOPES)\n credentials = FLOW.run_console()\n with open(PATH, \'w\') as token:\n token.write(credentials.to_json())\n
Run Code Online (Sandbox Code Playgroud)\n\xe3\x83\xbb错误消息
\nFile "Google_add.py", line 186, in <module>\nmain()\nFile "Google_add.py", line 172, …
Run Code Online (Sandbox Code Playgroud) google-oauth google-api-python-client google-admin-sdk google-workspace
问题:如何删除应用程序徽标。
解决方案:此答案中的先前解决方案/sf/answers/4001760591/不再有效。
Google 将 的格式更改"iconUrl"
为"icon"
,现在使用 -Base64
编码的数据流,例如"icon":"iVBORw0KGgoAAAAN...
,而不是以前写为 的图像 URL "iconUrl":"https://..."
。
我试过"icon":""
许多Base64编码的值一样"icon":"IA"
,"icon":"Lw"
和一些其他-没有成功。我收到控制台消息,例如
为了 "icon":""
{
"error": {
"code": 400,
"message": "The request failed because one of the field of the resource is invalid.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.PreconditionFailure",
"violations": [
{
"type": "client_auth_config",
"subject": "?error_code=9&error_field_name=UpdateIconRequest.icon&error_field_value=%3CByteString@3eeee81e+size%3D0+contents%3D%22%22%3E"
}
]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
或者
{
"error": {
"code": 400,
"message": "Request contains an …
Run Code Online (Sandbox Code Playgroud) google-api google-apps-script google-oauth google-cloud-platform google-workspace
我正在 G Suite 中为我的公司开发一个内部应用。我在电子表格应用程序中使用了一个模态对话框。我找不到在 Drive for mobile 上执行此操作的方法,因此我决定将其部署为 Web 应用程序。我从来没有在应用程序脚本中使用过这个功能,所以我决定在将它应用到我的活动项目之前设置一个新项目来处理。我在项目中有两个文件;代码.gs
function doGet(e) {
return HtmlService
.createHtmlOutputFromFile('mainPage')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
Run Code Online (Sandbox Code Playgroud)
和 mainPage.html
<!DOCTYPE html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
</head>
<body>
<!-- Reference: http://getbootstrap.com/javascript/#tabs -->
<div role="tabpanel">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a role="tab" data-toggle="tab" aria-controls="home" href="#home">Home</a>
</li>
<li role="presentation"><a role="tab" data-toggle="tab" aria-controls="profile" href="#profile">Profile</a>
</li>
<li role="presentation"><a role="tab" data-toggle="tab" aria-controls="messages" href="#messages">Messages</a>
</li>
<li role="presentation"><a role="tab" data-toggle="tab" aria-controls="settings" href="#settings">Settings</a>
</li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" …
Run Code Online (Sandbox Code Playgroud) 我们已经迁移到 GSuite,已经将 GCP 用于许多项目。
由于一些帐户已经存在,我们将这些帐户转移到我们新的 G Suite 任期中。
我们现在想将项目转移到我们的新组织,但是当我们尝试迁移时它显示“无组织”:
当我们尝试创建一个新项目时,不会显示任何组织:
该帐户确实属于我们的组织:
有任何想法吗?
我想在 G Suite Marketplace 上发布一个应用程序,允许通过 SCIM 2.0 进行用户和组管理/配置。我需要去哪里进行配置?
2016 年的这篇文章让我认为这是可能的(https://gsuiteupdates.googleblog.com/2016/07/automatically-provision-users-with-scim.html),但我在 Google 文档或 Marketplace SDK 中找不到它?
目前,我们使用 SCIM 作为与企业客户使用的身份提供商集成的主要方法。不过,有些企业使用 GSuite 进行 SSO。我们当前在 Google Marketplace 中的应用程序不使用 SCIM,因此必须单独维护。
免责声明: https: //console.cloud.google.com/support/community引导至此处。谷歌的文档太可怕了,所以如果我没有被低估到 dev/null 的深度,就试一试吧
\n\n出于迫在眉睫的需要,我正在将一个监控 Gmail 帐户的私人应用程序迁移到 OAuth 2,作为此过程的一部分,有必要创建一个OAuth 同意屏幕。由于此应用程序仅在内部使用,因此为应用程序类型选择“内部”是最有意义的 - 描述如下:
\n\n\n\n\n只有您组织中拥有 Google 帐户的用户才能授予对此应用请求的范围的访问权限。
\n
此项目的用户包括两个“所有者”\xe2\x80\x94(本人使用我的个人 Gmail 帐户)和\n另一位属于公司 G Suite 帐户的员工。
\n\n我的问题是谁有资格成为“我的组织中的用户”?这是基于项目业主吗?我的非 G-Suite 帐户(该项目的所有者)是否符合资格?G Suite 帐户中包含一名成员是否会自动关联其他员工帐户?是否可以在任何地方实际查看这些用户或直接管理他们?
\n\n我实际上想添加另外几个帐户,但仍保持应用程序的私密性,但我对 Google 如何确定哪些 Gmail 帐户能够授权该应用程序感到困惑。
\n\n更新:澄清一下,当我以与项目所有者位于同一域的 G Suite 成员身份登录并访问同意页面时,一切都很好。但是,我们在同一个 G Suite 帐户中管理了位于不同域下的其他成员,对于这些成员,我收到以下消息:
\n\n\n\n\n错误 403: org_internal \n 此客户端仅限于其组织内的用户。
\n
此外,我什至无法使用我自己的电子邮件(应用程序的创建者和所有者)授予访问权限。我想知道如何添加自己和其他 G Suite 成员,以便能够在不公开该应用程序的情况下授予对该应用程序的访问权限。下面建议我将它们(或其域)添加到 Google Cloud IAM,但我不清楚如何使其正常工作。我自己的电子邮件确实已存在于 IAM 中且具有“所有者”角色,显然这不满足要求。
\ngoogle-oauth google-cloud-platform google-iam google-cloud-iam google-workspace
我有一个谷歌群组,我希望人们能够通过单击链接或填写表格从我的网站加入,这两者都不需要群组管理员/所有者的任何进一步授权。
是否可以通过点击链接加入谷歌群组?例如:groups.google.com/g/groupname/join ?我知道对于经典的谷歌群组,可以像这样加入:https://groups.google.com/forum/#!forum/groupname/join,但我想知道这对于更新/新的谷歌是否仍然可行团体?
是否可以通过 API 调用将成员添加到 google 群组?
谢谢。
为什么 Google 认为我的 Django 应用程序通过 SMTP (smtp.gmail.com) 发送电子邮件的请求不安全?阅读他们的安全标准并没有多大帮助:
更安全的应用程序如何帮助保护您的帐户当第三方应用程序符合我们的安全标准时,您可以:
在连接您的 Google 帐户之前,查看您授予该应用的帐户访问权限级别 让该应用仅访问您 Google 帐户的相关部分,例如您的电子邮件或日历 将您的 Google 帐户连接到该应用,而不暴露您的密码 断开与 Google 的连接随时从应用程序帐户
从 Django 发送电子邮件时这是一个非常常见的问题。有教程和stackoverflow 问题/答案(第二个答案)可以通过更改 Google 帐户中的设置以允许安全性较低的应用程序来“解决”此问题。我已经完成了这项工作,并且对此感到满意,直到我从控制对不太安全的站点的访问中读到此内容:
由于 Google 开始关闭 Google 帐户对安全性较低的应用程序的访问权限,因此强制选项不再可用。我们建议立即关闭安全性较低的应用程序访问。您应该开始使用安全性较低的应用程序的替代品。
随着 Google 逐渐不再允许安全性较低的应用访问 Google 帐户,您将收到有关影响您的更改的电子邮件通知。
当我尝试搜索“如何通过 Google 确保 Django 安全”或“为什么 Django 对 Google 来说显示为不安全的应用程序”时,我看到的结果反映了更多相同的指导:只需翻转开关即可允许 Google 帐户上的不安全应用程序。我想知道为什么 Django 被认为是不安全的,这样也许我可以将其配置为安全的。
编辑:我还没有验证这些步骤使 Django 成为一个“更安全的应用程序”。在此之前,使用应用程序密码可以让我关闭“允许安全性较低的应用程序”。实施起来非常简单。
我正在更新 G Suite Marketplace SDK 上的应用。过去只需在“应用程序配置”选项卡中更改脚本版本,然后单击“保存”即可。
现在它在页面顶部发布了一条警告说:
您的帐户与此云项目或应用不属于同一个域
和Save
按钮是灰色的,不能点击。
错误图像可以在这里看到:
有什么问题,我应该去哪里检查和验证域?
google-workspace ×10
google-oauth ×3
html ×2
api ×1
django ×1
email ×1
gmail ×1
google-api ×1
google-iam ×1
javascript ×1
jquery ×1
python ×1
scim ×1
scim2 ×1
sdk ×1