2016-08-03 5 views
2

Я пытаюсь настроить двустороннюю синхронизацию с Google Spreadsheet. Я могу внести изменения в свой набор данных в таблицу Google, используя ее Google Sheets API V4Получайте обновления в реальном времени из таблицы Google

Теперь я хочу получать обновления из электронной таблицы Google всякий раз, когда кто-либо редактирует или добавляет новую строку в режиме реального времени или почти в реальном времени -время.

Любая помощь, которая указывает мне в правильном направлении, очень ценится.

ответ

1

Вы можете сделать это вручную, перейдя в меню Инструменты> правила уведомления ..

enter image description here

Если файл находится в Диске Google, вы можете попробовать и сделать использование Push Notifications: Чтобы использовать уведомления толчка , вам необходимо сделать три вещи:

Зарегистрируйте домен получателя. Например, если вы планируете использовать , введите //mydomain.com/notifications в качестве получателя, вам необходимо указать зарегистрироваться //mydomain.com. Настройте свой получающий URL-адрес или «Webhook» приемник обратного вызова. Это HTTPS-сервер, который обрабатывает уведомления об ошибках API , которые запускаются при изменении ресурса. Установите вверх по каналу уведомления для каждой конечной точки ресурса, которую вы хотите смотреть. Канал указывает информацию о маршрутизации для сообщений . В рамках настройки канала вы определяете конкретный URL-адрес , где вы хотите получать уведомления. Всякий раз, когда изменяется ресурс канала , API-интерфейс Drive отправляет уведомление об этом в качестве запроса POST на этот URL.

Пошаговое руководство для 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 
    } 
    } 
+0

«Push Notification» - это то, что мне нужно; Спасибо! – user4426017

+0

Можете ли вы рассказать мне, как создать канал для определенного файла? –