Gmail邮件getAttachments功能未返回内联图片 - 请参阅问题2810 https://code.google.com/p/google-apps-script-issues/issues/detail?id=2810
我需要这样做,所以我编写了下面的代码,以消息原始内容解析blob格式的内嵌图像,事先知道消息中的图像cid.
但是,我觉得这个解析在我找到base64图像内容中的第一个和最后一个字符的方式上非常脆弱,不是吗?
有没有更好的方法呢?
此致,Fausto
var rawc = message.getRawContent();
var b64c1 = rawc.lastIndexOf(cid) + cid.length + 3; // first character in image base64
var b64cn = rawc.substr(b64c1).indexOf("--") - 3; // last character in image base64
var imgb64 = rawc.substring(b64c1, b64c1 + b64cn + 1); // is this fragile or safe enough?
var imgblob = Utilities.newBlob(Utilities.base64Decode(imgb64), "image/jpeg", cid); // decode and blob
Run Code Online (Sandbox Code Playgroud) 我将在几个用户之间分发一个带有onOpen菜单的电子表格.我想在库中保留菜单定义和功能,因此如果我添加一些菜单选项或更新某些功能,使用该电子表格的每个人都将自动更新.
到目前为止,在电子表格脚本上我只有这个简单的代码:
function onOpen() {
myLib.loadMenu();
}
Run Code Online (Sandbox Code Playgroud)
菜单加载电子表格没有问题,但无论我如何命名菜单上的调用和实际功能(有或没有myLib.)我总是得到一个错误"使用选项时无法找到脚本函数doSomething"从那个菜单.
有关如何命名菜单中的函数调用和库中的实际函数的任何想法,以便使用此方法.
谢谢,福斯托
编辑-1:让我提供更多细节和示例代码
我的目标是能够从库中为该电子表格菜单添加更多选项,而无需更新每个用户的电子表格.
这是包含在电子表格脚本中的示例代码,尚未使用任何库,它可以正常工作
function onOpen() {
testMenu();
}
function testMenu() {
SpreadsheetApp.getActiveSpreadsheet().addMenu(
'Testing', [
{ name: 'Do Something #1', functionName: 'someFunction1' },
null,
{ name: 'Do Something #2', functionName: 'someFunction2' } ]);
}
function someFunction1() {
SpreadsheetApp.getActiveSheet().getRange("A1").setValue("Hello from someFunction1");
}
function someFunction2() {
SpreadsheetApp.getActiveSheet().getRange("A2").setValue("Bye from someFunction2");
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是获得相同的功能,但在电子表格脚本和库之间拆分代码,如下所示
在电子表格脚本上
function onOpen() {
xsLib.testMenu();
}
Run Code Online (Sandbox Code Playgroud)
在图书馆
function testMenu() {
SpreadsheetApp.getActiveSpreadsheet().addMenu(
'Testing', [
{ name: 'Do Something #1', functionName: 'someFunction1' }, …Run Code Online (Sandbox Code Playgroud) 使用Google Apps脚本构建的Web应用程序具有以下链接:
https://script.google.com/a/macros/mydomain.com/s/AKfy...iXUrQfobe6/exec
任何想法如何将这样的Url映射到友好的,如:
app.myapp.mydomain.com
在使用GAS HtmlService的Web应用程序上,我需要获取当前页面的URL以在模板中构建新链接.
该网络应用程序将在Google网站页面(GAS作为小工具)中运行,但也可以独立运行
我正在尝试"var pageUrl = document.location.href",然后在Html模板中使用pageUrl,如下所示.我知道这是错的,但我迷路了,抱歉.
<a href="<?= pageUrl + "?item=xyz" ?>" >Item xyz link</a>
Run Code Online (Sandbox Code Playgroud)
谢谢,福斯托
大家都好,
我可以在处理函数中使用全局变量,但是我不能在函数内"全局"修改它们.
在下面的代码中,在第一次单击后,它将显示数字1001(处理程序读取,递增并显示正确的结果).但是,任何进一步的点击总是会显示1001,因此处理程序会继续读取原始的globalVar值:它不会像我期望的那样被修改.
我能做些什么来解决这个问题?
var globalVar = 1000;
function testingGlobals() {
var app = UiApp.createApplication();
var doc = SpreadsheetApp.getActiveSpreadsheet();
var panel = app.createVerticalPanel().setId('panel');
app.add(panel);
panel.add(app.createButton(globalVar).setId("globalVar").addClickHandler(app.createServerHandler("chgGlobal").addCallbackElement(panel)));
doc.show(app)
}
function chgGlobal(e) {
var app = UiApp.createApplication();
globalVar++;
app.getElementById("globalVar").setText(globalVar);
return app;
}
Run Code Online (Sandbox Code Playgroud) 关于如何将favicon.ico附加到使用Google Apps脚本构建的Web应用程序的任何想法?
编辑1:使用UiApp
谢谢,福斯托
我正在尝试使用此代码将Google电子表格复制到特定文件夹中
var targetFolder = DocsList.createFolder("Testing");
var mainDocBlob = DocsList.getFileById("docId").getBlob();
var newMainDoc = targetFolder.createFile(mainDocBlob);
Run Code Online (Sandbox Code Playgroud)
但是生成的文件是Pdf文件,而不是源代码的电子表格.
如何使用DocsList正确执行此操作并始终获取与源相同类型的文件.
谢谢