在 Apps 脚本中的 Gmail 加载项中完成请求后获得回调
Getting a callback after a request has been completed in a Gmail Add On in Apps Script
首先,我要做的是完成以下任务。
注意:这不是我的插件。
这个脚本是如何生成的?我找不到任何关于 script.google.com/macros.
的信息
关闭此选项卡后,加载项会收到如下所示的回调:
由于我不了解流程,我的问题是:
- 附加脚本如何知道选项卡正在关闭?
- 脚本是如何创建的?
- 脚本在哪个端点调用 google 附加组件?
以下是我的插件脚本:
function insertDocumentToRMS(e){
var url = "https://test.signumid.hr/v/1/rms";
var object = {
"data" : e.parameters.file.toString()
}
var payload = JSON.stringify(object);
var headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
};
var options = {
"method": "POST",
"contentType": "application/json",
"headers": headers,
"payload": payload,
"muteHttpExceptions": true
};
var response = UrlFetchApp.fetch(url, options);
var data = JSON.parse(response.getContentText());
Logger.log(data);
var url2 = "https://test.signumid.hr/v/1/signer/document/storage/"+ data.recordNumber;
Logger.log(url2);
var object2 = {
"SignatureProvider": "SwisscomAis",
"SignatureProviderData": {
"SwisscomRequestData": {
"mobileNumber": "+41796063855",
"language": "en",
"message": "Matej Potpišiii!",
"jurisdiction": "ZERTES",
"signatureLevel": "AES"
}
},
"Documents": [
{
"SignatureOptions": {
"Reason": "Reason",
"Location": "Location",
"SignerContactInfo": "SignerContactInfo",
"SignerName": "SignerName"
},
"Document": e.parameters.file.toString()
}
]
}
var payload2 = JSON.stringify(object2);
var headers2 = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
};
var options2 = {
"method": "GET",
"contentType": "application/json",
"headers": headers2,
"payload": payload2,
"muteHttpExceptions": true
};
var response2 = UrlFetchApp.fetch(url2, options2);
Logger.log(response2);
let actionSign = CardService.newAction().setFunctionName('test');
var actionResponse = CardService.newActionResponseBuilder()
.setOpenLink(CardService.newOpenLink()
.setUrl("https://test.signumid.hr/v/1/signer/document/storage/"+ data.recordNumber)
.setOpenAs(CardService.OpenAs.OVERLAY)
.setOnClose(CardService.OnClose.RELOAD))
.build();
return actionResponse;
}
正如您在最后(此处)看到的那样,我正在尝试将 actionBuilder 与具有 属性 OnClose 的 actionResponse 一起使用,但 OnClose 上的唯一参数是:NOTHING 和 RELOAD。我可以通过某种方式传递一个动作,或者我应该怎么做才能复制我上面提到的场景?
var actionResponse = CardService.newActionResponseBuilder()
.setOpenLink(CardService.newOpenLink()
.setUrl("https://test.signumid.hr/v/1/signer/document/storage/"+ data.recordNumber)
.setOpenAs(CardService.OpenAs.OVERLAY)
.setOnClose(CardService.OnClose.RELOAD))
.build();
基本上 add-on 所做的是 'sign in workflow' 来授权范围。如果您想复制该工作流程,您可以查看 Google 提供的 this sample。
除此之外,您还可以提交 feature request 来控制浏览器事件。
正在寻找我找到的任何替代选项 this and this.
至于使用 Google Apps 脚本的宏,您可以 look here.
首先,我要做的是完成以下任务。 注意:这不是我的插件。
这个脚本是如何生成的?我找不到任何关于 script.google.com/macros.
的信息关闭此选项卡后,加载项会收到如下所示的回调:
由于我不了解流程,我的问题是:
- 附加脚本如何知道选项卡正在关闭?
- 脚本是如何创建的?
- 脚本在哪个端点调用 google 附加组件?
以下是我的插件脚本:
function insertDocumentToRMS(e){
var url = "https://test.signumid.hr/v/1/rms";
var object = {
"data" : e.parameters.file.toString()
}
var payload = JSON.stringify(object);
var headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
};
var options = {
"method": "POST",
"contentType": "application/json",
"headers": headers,
"payload": payload,
"muteHttpExceptions": true
};
var response = UrlFetchApp.fetch(url, options);
var data = JSON.parse(response.getContentText());
Logger.log(data);
var url2 = "https://test.signumid.hr/v/1/signer/document/storage/"+ data.recordNumber;
Logger.log(url2);
var object2 = {
"SignatureProvider": "SwisscomAis",
"SignatureProviderData": {
"SwisscomRequestData": {
"mobileNumber": "+41796063855",
"language": "en",
"message": "Matej Potpišiii!",
"jurisdiction": "ZERTES",
"signatureLevel": "AES"
}
},
"Documents": [
{
"SignatureOptions": {
"Reason": "Reason",
"Location": "Location",
"SignerContactInfo": "SignerContactInfo",
"SignerName": "SignerName"
},
"Document": e.parameters.file.toString()
}
]
}
var payload2 = JSON.stringify(object2);
var headers2 = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": "Basic dXNlcm5hbWU6cGFzc3dvcmQ="
};
var options2 = {
"method": "GET",
"contentType": "application/json",
"headers": headers2,
"payload": payload2,
"muteHttpExceptions": true
};
var response2 = UrlFetchApp.fetch(url2, options2);
Logger.log(response2);
let actionSign = CardService.newAction().setFunctionName('test');
var actionResponse = CardService.newActionResponseBuilder()
.setOpenLink(CardService.newOpenLink()
.setUrl("https://test.signumid.hr/v/1/signer/document/storage/"+ data.recordNumber)
.setOpenAs(CardService.OpenAs.OVERLAY)
.setOnClose(CardService.OnClose.RELOAD))
.build();
return actionResponse;
}
正如您在最后(此处)看到的那样,我正在尝试将 actionBuilder 与具有 属性 OnClose 的 actionResponse 一起使用,但 OnClose 上的唯一参数是:NOTHING 和 RELOAD。我可以通过某种方式传递一个动作,或者我应该怎么做才能复制我上面提到的场景?
var actionResponse = CardService.newActionResponseBuilder()
.setOpenLink(CardService.newOpenLink()
.setUrl("https://test.signumid.hr/v/1/signer/document/storage/"+ data.recordNumber)
.setOpenAs(CardService.OpenAs.OVERLAY)
.setOnClose(CardService.OnClose.RELOAD))
.build();
基本上 add-on 所做的是 'sign in workflow' 来授权范围。如果您想复制该工作流程,您可以查看 Google 提供的 this sample。
除此之外,您还可以提交 feature request 来控制浏览器事件。
正在寻找我找到的任何替代选项 this and this.
至于使用 Google Apps 脚本的宏,您可以 look here.