【问题标题】:Google Drive Javascript API: Detect drive changes - return changes onlyGoogle Drive Javascript API:检测驱动器更改 - 仅返回更改
【发布时间】:2014-09-20 03:44:15
【问题描述】:

我尝试检测用户驱动器上的更改以更新列表中的内容,但是当我请求更改时,我收到驱动器上的所有条目。

解释我为什么要这样做: 当用户打开两个选项卡时,这是一个方便的功能,一个带有 google drive 环境,一个带有使用驱动器的应用程序(无需重新加载应用程序即可查看驱动器环境中所做的内容更改)。

我正在遵循此处列出的指南:https://developers.google.com/drive/v2/reference/changes/list

奇怪的是我需要一个largestChangeId+1,但是我怎么知道这个值呢?我不知道最大的ChangeId 并将其设置为null。无论我用这个值做什么,我都会得到所有的内容。

我做了以下代码:

o.getCloudFileUpdates = function(fCallback, sFolderId )
{
  var oDefQ = {q:'trashed=false '+(typeof sFolderId == 'string'?('and "'+sFolderId+'" in parents'):''), largestChangeId:null, orderby:'title', maxResults:1000},      
      fGetFiles = function(request, result) 
      {
        request.execute(function(resp) 
        {
            //$d(resp); 
            if( resp.items instanceof Array )   
            {
              result = result.concat(resp.items);
              if( resp.nextPageToken ) 
              { // Get next page and 'break' this function 
                 return fGetFiles(gapi.client.drive.changes.list($j.extend(oDefQ,{'pageToken':resp.nextPageToken})), result); 
              } 
            }

            if( result.length )
            {
              result.sort(function(a,b) 
              {
                if (a.title < b.title)
                 { return -1; }
                if (a.title > b.title)
                 { return 1; }
                return 0;
              });

              fCallback(result);
              return;
            }
            fCallback(false);
        });
      };

  try {
    fGetFiles(gapi.client.drive.changes.list(oDefQ), []);
  } catch(e) { fCallback(false); return false; }
  return true;
};

在不知道largestChangeId 的情况下如何获取最新更改?

【问题讨论】:

    标签: javascript google-drive-api


    【解决方案1】:

    第一次通话时从零开始。响应中包含当前最大的更改 ID,您需要存储并在下一个请求中使用它。在您的代码中,它将具体化为“resp.largestChangeId”。

    【讨论】:

    • 您好,感谢您的回答。这听起来效率很低,不是吗?还有其他方法吗?
    • 如果你想避免初始抓取,你可以使用 About feed developers.google.com/drive/v2/reference/about 。我承认我从未尝试过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    相关资源
    最近更新 更多