从Google电子表格中接收实时更新

时间:2016-08-03 16:01:23

标签: google-sheets-api

我尝试与Google电子表格设置双向同步。我可以使用Google Sheets API V4

将我的数据集中的更改推送到Google电子表格

现在,我希望每当有人进行编辑或实时或接近实时添加新行时,都可以从Google电子表格中获取更新。

非常感谢任何帮助我指明正确方向的帮助。

1 个答案:

答案 0 :(得分:3)

您可以通过转到工具 - >手动执行此操作通知规则..

enter image description here

如果该文件位于Google云端硬盘中,您可以尝试使用Push Notifications: 要使用推送通知,您需要做三件事:

  

注册接收网址的域名。例如,如果您打算   您需要使用//mydomain.com/notifications作为接收网址   注册//mydomain.com。设置您的接收URL或“Webhook”   回调接收器。这是一个处理API的HTTPS服务器   资源更改时触发的通知消息。组   为您想要的每个资源端点建立通知通道   看。通道指定通知的路由信息   消息。作为频道设置的一部分,您可以识别特定的URL   您想要接收通知的位置。每当一个频道的资源   更改后,Drive API会将通知消息作为POST请求发送   到那个网址。

Google演练video here

您还可以使用Appscript。这个简单的黑客来自SO thread

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
    }
  }