Google drive api 为什么赢了';我的谷歌表单每次都会被观看并推送更新吗?

Google drive api 为什么赢了';我的谷歌表单每次都会被观看并推送更新吗?,google-drive-api,Google Drive Api,我正在尝试检测来自谷歌表单的更新。我正在关注,并且已经成功地观看了工作表并从中获得了更新 然而,我并没有得到每一个更新。例如,如果我在工作表中做了更改,我将收到来自谷歌的更新。如果我在一分钟内做了第二次更改,我可能会也可能不会得到更新。第三次更改将永远不会发送。如果我刷新工作表,我会立即得到更新 我已经做了大量的测试,感觉谷歌没有发送我没有得到的更新。谷歌是否进行了某种节流,或者这是API中的一个bug 更新: 我将提供更多的上下文,以便更清楚地理解我的意思 我正在尝试获取谷歌表单中更改的实际数

我正在尝试检测来自谷歌表单的更新。我正在关注,并且已经成功地观看了工作表并从中获得了更新

然而,我并没有得到每一个更新。例如,如果我在工作表中做了更改,我将收到来自谷歌的更新。如果我在一分钟内做了第二次更改,我可能会也可能不会得到更新。第三次更改将永远不会发送。如果我刷新工作表,我会立即得到更新

我已经做了大量的测试,感觉谷歌没有发送我没有得到的更新。谷歌是否进行了某种节流,或者这是API中的一个bug

更新: 我将提供更多的上下文,以便更清楚地理解我的意思


我正在尝试获取谷歌表单中更改的实际数据。举个例子,每当工作表中的某个值发生更改时,我都希望Google实时向我推送更新。我正在使用GoogleSheetsAPI来查看表(drive.files.watch),创建的表工作正常,所以这不是问题所在。问题是我有时只会得到更新,例如前两个更改会被发送给我。但是,如果进行了大量编辑,它们将永远不会被发送。

尝试手动设置电子表格中的通知规则。您可以通过转到工具->通知规则,单击单选按钮
“进行任何更改”
“立即发送电子邮件”
在电子表格中发生更改时立即接收通知

接收通知的另一种方法是创建一个函数来检查更改。请检查本文中的示例代码

var sheet = **whatever**;//The spreadsheet where you will be making changes
var range = **whatever**;//The range that you will be checking for changes
var compSheet = **whatever**;//The sheet that you will compare with for changes
function checkMatch(){
  var myCurrent = sheet.getRange(range).getValues();
  var myComparison = compSheet.getRange(range).getvalues();
  if(myCurrent == myComparison){//Checks to see if there are any differences
    for(i=0;i<compSheet.length;++i){ //Since getValues returns a 'multi-dimensional' array, 2 for loops are used to compare each element
     for(j=0;j<compSheet[i].length;++i){
      if(myCurrent[i][j] != myComparison[i][j]){//Determines if there is a difference;
       //***Whatever you want to do with the differences, put them here***
     }
    }

    myEmailer(sheet.getUrl());//Passes the url of sheet to youur emailer function 
    compSheet.getRange(range).setValues(myCurrent);//Updates compSheet so that next time is can check for the next series of changes
    }
  }
var表=**无论什么**//您将在其中进行更改的电子表格
var范围=**无论什么**//要检查更改的范围
var compSheet=**无论什么**//将与之比较以进行更改的工作表
函数checkMatch(){
var myCurrent=sheet.getRange(range.getValues();
var myComparison=compSheet.getRange(range.getvalues();
if(myCurrent==myComparison){//检查是否有任何差异

对于(i=0;我感谢你的建议,但它们不是我在这里想要的。我已经更新为“问题”,以便更容易理解我的意思。我遇到了完全相同的问题,并假设我必须做错事,但显然这不是一个孤立的事件。你在这方面有什么进展吗?