我正在 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) 我正在尝试将电子表格中的数据返回到作为 webApp 发布的 Apps 脚本。但是,对于我的其中一个电子表格(链接),返回的数据是null. 我在返回之前记录了数据以确保它不为空,并且我可以在日志中看到它们。
这是我的代码:
function doGet(){
return HtmlService.createHtmlOutputFromFile('index');
}
function spreadsheetTest() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var maxRows = sheet.getMaxRows();
var data = sheet.getSheetValues(1, 1, maxRows, 10);
Logger.log(data)
return data;
}Run Code Online (Sandbox Code Playgroud)
<html>
<button type="button" onclick="clcked();">Click Me!</button>
<div id="Message"></div>
<script>
function clcked(){
google.script.run
.withSuccessHandler(function(response) {
console.log(response);
})
.spreadsheetTest();
}
</script>
</html>Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激。:)
我正在尝试使用 Google Apps 脚本制作一个 Web 应用程序,该应用程序实际上返回一个图像文件而不仅仅是文本。我试过就这么简单:
function doGet() {
var file = DriveApp.getFileById('[redacted]');
return file;
}
Run Code Online (Sandbox Code Playgroud)
将其发布为 Web 应用程序并执行时,它只是说
脚本完成但没有返回任何内容。
我知道该文件存在并且可以访问,因为我可以打印它的 MIME 类型,这是一个正确的image/png. 所以我在这里遗漏了一些明显的东西,但并不是特别精通 Google Apps 脚本,更不用说任何类型的网络开发了,我不知道我遗漏了什么,正在寻找有关返回图像的介绍性材料来自 Google Apps Script 也不是特别有成效,尤其是当我完全不确定从哪里开始时。
甚至可以通过 Google Apps 脚本从网络应用程序返回图像文件吗?
我在 GAS 中制作了一个 400 像素宽的网络应用程序。我希望在加载时缩放以填充移动设备的屏幕,而不是仅填充屏幕的一半(尽管仍然使用固定的像素宽度)。
我试过使用下面的视口代码但没有运气。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=2.0, user-scalable=yes" />
Run Code Online (Sandbox Code Playgroud) 如何使用 API-Key 或 OAuth2 将 Google Sheet 代码链接到我的付费 Cloud Platform 帐户。我有一个简单的应用程序脚本链接到一个简单的工作表,只要我在“免费”模式下使用它,它就可以完美地工作。但我无法让我的 Google Cloud Platform 帐户 API 与我的工作表一起使用。谁能帮我解决这个问题或告诉我我做错了什么?
工作表的作用:从连续的前三列中获取“发件人地址”、“收件人地址”和日期时间。然后我maps.newDirectionFinder()使用这三个输入参数进行调用。distance.value然后,我使用、duration.value和更新同一行中的其他三列duration_in_traffic.value。
下面是我的代码。使用 " 时Maps.setAuthentication(<client-id>, <secret-key>)",我在调用的行中收到“不允许操作”错误Maps.newDirectionFinder()。
注意:我启用的 API 包括:“Directions API”、“Google Sheets API”、“Distance Matrix API”、“Maps Javascript API”和“Roads API”。
代码(删除键):
/********************************************************************************
* Library of Direction Finding and Route Optimization routines from Google Maps
* Documentation of the Google Maps directionFinder functionality is here:
* https://developers.google.com/apps-script/reference/maps/direction-finder
********************************************************************************/
// To do:
// API Key (11/04/2018): <API-key> …Run Code Online (Sandbox Code Playgroud) google-maps google-sheets google-apps-script google-sheets-api
我想为学生做一个关于使用 Google Forms 进行基本编程的测验。挑战是我找不到任何 Add On 如何向问题添加代码片段,就像在 Stack Overflow 中一样,按 Ctrl+K。
google-docs google-apps-script google-forms google-form-quiz
如果您下载目录,Google Drive 网络界面允许您下载单个 .zip 文件。但是,我发现无法使用 API 做到这一点。是否可以使用 API 在驱动器上创建多文件 zip?
更新:Tanakie 的代码有效!这很棒!但是,我只能在我的个人帐户中使用它。我有两个 G-Suite 管理员帐户,但出现错误:
“抱歉,目前无法打开文件。
请检查地址,然后再试一次。”
我已经确认这在多个免费的个人谷歌帐户中工作正常。知道为什么它在使用付费谷歌帐户时不起作用吗?
- - - - 更新 - - -
如果您收到“抱歉,此时无法打开文件”错误,请等待一天,该错误会自行修复。
这是我仅使用 POST 的最终解决方案。就像下面 Tanaike 所说的那样。
谷歌脚本:
function doPost(e) {
var zipFileName = e.parameter.zipFileName
var fileIds = e.parameter.ids.split(",");
return ContentService.createTextOutput(zipping(fileIds, zipFileName));
}
function zipping(fileIds, zipfilename) {
var blobs = [];
var mimeInf = [];
var accesstoken = ScriptApp.getOAuthToken();
fileIds.forEach(function(fileID) {
try {
var file = DriveApp.getFileById(fileID);
var mime = file.getMimeType();
var name = file.getName();
} …Run Code Online (Sandbox Code Playgroud) 我想弄清楚如何通过 php 的 api 调用 google 脚本。这是我的脚本:
function doGet() {
return ContentService.createTextOutput("hello world!");
}
Run Code Online (Sandbox Code Playgroud)
我可以通过 URL 将其作为 Web 应用程序调用,但我想要完成的任务需要通过 API 调用它。谷歌的文档非常混乱,几乎毫无用处。
这似乎是一项非常简单的任务,但我却一事无成。有谁知道在哪里可以找到简单的分步教程,或者有人可以详细说明完成此任务所需的步骤吗?
更新:所以,我已经放弃了 google API 来访问脚本。我可以使用所有驱动器 api 调用,但似乎无法通过 API 调用我自己的脚本。这是我的最终目标:
用于压缩文件的谷歌脚本:
function doGet(e) {
var fileIds = [];
// hard code a couple of file id's just for simplicity now.
fileIds.push('0BzoYw0RgVVOvU0RqdTFrcGdSSzA');
fileIds.push('0BzoYw0RgVVOvNEJNcWpmSkNxNTA');
return ContentService.createTextOutput(zipping(fileIds));
}
function zipping(fileIds) {
var zipfilename = "sample2.zip";
var blobs = [];
var mimeInf = [];
var accesstoken = ScriptApp.getOAuthToken();
fileIds.forEach(function(e) {
try {
var file …Run Code Online (Sandbox Code Playgroud) php web-applications google-api google-apps-script google-cloud-platform
我使用 Google Apps 脚本创建了一个简单的 Html 文件,并将其部署为网络应用程序。虽然我在同一页面上添加了一些元素的链接,但它并没有跳转到指定的元素并返回空白页面。
这是 html 的一个片段。
<ul>
<li><a href ="#april">April</a></li>
<li><a href ="#may">May</a></li>
<li><a href ="#june">June</a></li>
</ul>
.
.
.
<a id="april">2019/04</a>
.
.
.
<a id="may">2019/05</a>
.
.
.
<a id="june">2019/06</a>
.
.
.
Run Code Online (Sandbox Code Playgroud)
当我单击这些元素时,它会重定向到另一个 URL,如下所示。
https://{scriptid}-script.googleusercontent.com/userCodeAppPanel#id
我尝试访问 {url}+{#id},它给了我相同的页面。所以 id 属性似乎不起作用,但我不知道要修复什么。我在这里做错了什么?
编辑 这是我到目前为止所尝试过的。 https://script.google.com/macros/s/AKfycbyW5FRfQP3CpOU0brJEeeSgR6xypQ57jAjDs5KfQFYRmYIaaBs/exec
.gs 文件
function doGet() {
return HtmlService.createTemplateFromFile('index').evaluate();
}
Run Code Online (Sandbox Code Playgroud)
html文件
<!DOCTYPE html>
<html>
<head>
<base target="_top">
1
<br>
2
<br>
3
<br>
4
<br>
5
<br>
<a name="top">Top</a>
</head>
<body>
<br><br><br><br><br>
<a href="#top">Goto …Run Code Online (Sandbox Code Playgroud) 当我单击按钮时,我已将格式化数据添加到模态对话框中
showModalDialog()我希望当我单击按钮时将的内容自动添加到剪贴板
模态是使用下面的代码生成的,并且temp是我想要添加到剪贴板的输出
//Output to Html
var htmlOutput = HtmlService
.createHtmlOutput(temp)
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setWidth(600)
.setHeight(500);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Filter OptionList Maker');
Run Code Online (Sandbox Code Playgroud)
编辑; 好吧,我想也许这可能Modal Dialog是题外话,正确的问题可能是如何将格式化的字符串添加temp到剪贴板
这是我所说的格式化字符串的示例
filter {
target: element;
as: dropdown;
padding: 5;
summary: "Network Practice";
default: show-all;
multiple: true;
option {
label: "< 1 year";
selector: element["NETWORK PRACTICE"="< 1 year"];
}
option {
label: "1-3 years";
selector: element["NETWORK PRACTICE"="1-3 years"];
}
option {
label: "3-10 years";
selector: element["NETWORK PRACTICE"="3-10 years"];
}
option {
label: "> …Run Code Online (Sandbox Code Playgroud) javascript clipboard web-applications modal-dialog google-apps-script
我想将 html 表单中的图像通过 http 发布到谷歌应用程序脚本网络应用程序,然后将该图像添加到谷歌驱动器。
我的应用程序脚本如下。
function doPost(e){
var date = new Date();
var timestamp = date.toString()
var adress = e.parameter.adress;
var cost = e.parameter.cost;
var item = e.parameter.item;
var check = e.parameter.image;
//add file to drive
var destination_id = "some ID"
var destination = DriveApp.getFolderById(destination_id);
destination.createFile(check);
};
Run Code Online (Sandbox Code Playgroud)
当我执行时,它返回一个错误; cannot find method: createFile(String)
我认为这是因为“检查”是一个字符串,我想将提交的图像转换为Blob。
我怎样才能做到这一点?
html ×3
anchor ×1
blob ×1
clipboard ×1
drive ×1
google-api ×1
google-docs ×1
google-forms ×1
google-maps ×1
javascript ×1
mobile ×1
modal-dialog ×1
null ×1
php ×1