我有一个简单的谷歌脚本,我检查用户的电子邮件(通过部署,我选择“执行应用程序:用户访问网络应用程序”)。在Web浏览器中一切正常。如果用户之前未授予脚本权限,则会显示授权页面。
授权后,我可以使用dataType:'jsonp'进行AJAX调用(jQuery),我可以收到响应(我的JSON响应)。但是,如果没有先前的脚本授权,我会收到一个错误,当我进行AJAX调用并且授权HTML页面响应时(我可以在浏览器控制台中看到它),但是我无法在jQuery中看到它以显示它用户。有没有办法处理我自己的授权?
我可以从响应中获取授权网址或授权网页吗?方法
ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL).getAuthorizationUrl();
Google脚本中的不起作用,因为我需要运行脚本的权限,之后我什么都没得到(因为我已经给了权限)。谢谢你的建议。
这是脚本代码:
function doGet(e) {
var threads = GmailApp.search('is:unread');
var messages = GmailApp.getMessagesForThreads(threads);
var jsonDataRes = [];
for (var i = 0 ; i < messages.length; i++) {
for (var j = 0; j < messages[i].length; j++) {
jsonDataRes.push({
"from" : messages[i][j].getFrom(),
"to" : messages[i][j].getTo(),
"subject" : messages[i][j].getSubject(),
"body" : messages[i][j].getPlainBody(),
});
}
}
return ContentService.createTextOutput(e.parameter.callback + '(' + JSON.stringify(jsonDataRes) + ')');
}
这就是我用jQuery和AJAX调用它的方式:
$.ajax({
url: "https://script.google.com/a/macros/social-net.sk/s/*random chars*/dev?callback=?",
dataType: "jsonp"
}).done(function(response) {
console.log(response);
}).always(function(response) {
console.log(response);
});
这就是我得到的:
http://i.stack.imgur.com/zyB9U.png
但是HTML就在那里响应(控制台 - 网络选项卡):