2017-01-10 6 views
1

Googleスプレッドシートからアップデートを検出しようとしています。私はSheets API V3 documentationに従っており、シートを見て、そこから更新を得ることに成功しました。視聴中のGoogleスプレッドシートが毎回更新をプッシュしないのはなぜですか?

しかし、私はすべてのアップデートを取得していません。たとえば、私がシートを変更した場合、私はGoogleから更新を受け取ります。私が1分以内に2回目の変更を行った場合、私はアップデートを受けるかもしれないし、しないかもしれない。 3番目の変更は決して送信されません。シートをリフレッシュすると直ちに更新が得られます。

私は大々的なテストを行いましたが、Googleが私には得られないアップデートを送信していないという印象を受けています。 Googleによって何らかの調整が行われているのですか、これはAPIのバグですか?

更新日: 私は、正確に何を意味するかを明確にするために、いくつかの文脈を提供します。

Googleシートで変更された実際のデータを取得しようとしています。例としてthis screenshotを使用すると、シート内の値が変更されたときはいつでも、私はGoogleにリアルタイムで更新をプッシュして欲しい。私は、のGoogleシートAPIを使用してのシート(drive.files.watch)を見ています。時計が正常に動作するので問題はありません。問題は、私が最初に行った2つの変更が私に送信されるなど、時々更新をプッシュするだけです。しかし、多くの編集が行われた場合、決して送信されません。

+0

私はまったく同じ問題を抱えていて、間違ったことをしなければならないと想定していましたが、明らかに孤立した事件ではありません。あなたの最後にこれに関する進歩? – Jakob

答えて

0

スプレッドシートに通知ルールを手動で設定してみてください。 、>通知ルール何かがスプレッドシートに変更したときに"Any changes are made""Email - right away"がすぐに通知を受信するためのラジオボタンをクリックしてください - あなたはツールに行くことによってこれを行うことができます。

通知を受け取る別の方法は、変更をチェックする関数を作成することです。このSO questionのサンプルコードを確認してください。

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

希望します。

+0

あなたの提案に感謝しますが、私がここで探しているものではありません。私は質問を更新して、私が意味することを理解しやすくしました。 –

関連する問題