Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置每小时触发后,Google PubSub在HistoryId pull上出现错误403_Javascript_Google Apps Script_Google Cloud Pubsub - Fatal编程技术网

Javascript 设置每小时触发后,Google PubSub在HistoryId pull上出现错误403

Javascript 设置每小时触发后,Google PubSub在HistoryId pull上出现错误403,javascript,google-apps-script,google-cloud-pubsub,Javascript,Google Apps Script,Google Cloud Pubsub,我正在拼命尝试通过PubSub服务获取Gmail通知,以便在googledrive上填充电子表格。我在尝试实现push函数时碰到了一堵墙,所以我抬头看了看生成了一个pull函数,并认为应该将其设置为计时器。我创建了下面的代码,并针对新消息正文中的一些特定单词进行了测试,效果非常好。我还共享了GAS脚本文件,它位于googledrive上,因此同事也可以运行它 我想最后我会设置定时触发器,这样它就可以在无人值守的情况下运行。然后,我决定最后运行一次主函数,结果出现以下错误: 错误:{“错误”:{“

我正在拼命尝试通过PubSub服务获取Gmail通知,以便在googledrive上填充电子表格。我在尝试实现push函数时碰到了一堵墙,所以我抬头看了看生成了一个pull函数,并认为应该将其设置为计时器。我创建了下面的代码,并针对新消息正文中的一些特定单词进行了测试,效果非常好。我还共享了GAS脚本文件,它位于googledrive上,因此同事也可以运行它

我想最后我会设置定时触发器,这样它就可以在无人值守的情况下运行。然后,我决定最后运行一次主函数,结果出现以下错误:

错误:{“错误”:{“代码”:403,“消息”:“未授权用户执行此操作。”,“状态”:

嗯?我5分钟前才让这个功能使用权限!更糟糕的是,我把计时器关掉了,错误还在那里!我卡住了

为了实现这一点,我已经将GAS webapp发布到Chrome商店,在谷歌云平台上注册了域名,创建了一个服务帐户,并将JSON密钥加载到我的webapp,创建了一个主题/订阅,并授予Gmail服务帐户发布权限。在我实施触发之前,我成功地测试了大约5次

以下是我在PubSub和GS库的两个文件中使用的代码:

Main.GS

var EMAILID=Session.getActiveUser().toString();
var PROJECTID='project-id-4467804683870657159';
var TOPIC='projects/project-id-4467804683870657***/topics/pullTrigger';
var SUBS='projects/project-id-4467804683870657***/subscriptions/pullTest';
函数doGet(){
var NumOfMessagesToPull=50;
setTokenService(getTokenService());
var sub=PubSubApp.SubscriptionApp(PROJECTID);
var mysub=sub.getSubscription('pullTest');
var subs=我的sub.pull(NumOfMessagesToPull);
如果(subs.length>0){
对于(变量i=0;i0)/)
{
var startInd=email.body.indexOf('Start')+12;
var endInd=email.body.indexOf('End')+12;
var pasInd=email.body.indexOf('Number')+8;
var qualInd=email.subject.indexOf('Q');
//Logger.log(startInd+endInd+pasInd);
var qualco=email.subject.substring(qualInd,qualInd+17);
var warning=email.body.substring(email.body.indexOf('eposit Expires in')、email.body.indexOf('days')+4);
var startDate=email.body.substring(startInd,startInd+12);
var endDate=email.body.substring(endInd,endInd+11);
var priorauthname=email.body.substring(pasInd,pasInd+11);
var ss=SpreadsheetApp.openById('1dfilct2xeafg_ewqo6q6vlmqo3rohx4llufi1zbc8')。getSheets()[0];
ss.appendRow([qualco,priorAuthNumber,startDate,endDate,warning]);
}
}
}
}
}
函数getMessageId(messageBatch){
var idList=新数组()
对于(var i=0;i