与Office 2016同步Sharepoint

时间:2016-06-30 06:44:43

标签: sharepoint sharepoint-2013 office365 onedrive office-2016

在我们公司,我们安装了SharePoint 2013。 在我还在运行Office 2013之前,我可以安装OneDrive for Business客户端,这样我就可以将SharePoint文档同步到本地PC。 我最近升级到Office 2016,并删除了OneDrive for Business的安装,并替换为" new"一个驱动器。新的OneDrive允许与OneDrive同步,但我无法找到与SharePoint同步的方法。

有谁知道如何将SharePoint与运行Office 2016的PC同步?

1 个答案:

答案 0 :(得分:2)

这个问题已经超过一年了,但我遇到了同样的问题,并找到了解决方法。

我遇到的具体问题是尝试将Office 365 SharePoint共享文档文件夹与我PC上安装的OneDrive客户端同步。点击"同步"在线共享文件夹上的按钮,浏览器将尝试打开OneDrive for Business客户端。点击"打开OneDrive for Business"将启动应用程序并开始同步。一两分钟后,客户端将返回"此库无法再使用此应用程序同步。要同步这些文件,请使用最新的OneDrive应用程序。"

解决问题的步骤不成功:

  • 卸载较新的OneDrive客户端
  • 删除Office帐户并重新验证
  • 强制OneDrive.exe(新客户端)打开"同步"链接
  • 将URL复制到SharePoint文件夹,并将其作为库手动添加到OneDrive for Business客户端

经过一些研究和调试后,似乎Microsoft尚未更新SharePoint for Office 365以使用较新的协议用于"下一代" OneDrive客户端。 OneDrive for Business(以前称为Groove)使用Groove Open协议(grvopen://)与浏览器内容进行交互。新的OneDrive客户端使用不同的OneDrive Open协议(odopen://)。

Groove Open链接看起来像这样(为了便于阅读,添加了换行符):

grvopen://<url-encoded-path-to-library-here-including-https://>/{<SharePoint-list-id>}/<list-base-type>?OPENLIST&
siteId=<site-id>&
webId=<web-id>&
webTitle=<web-title>&
listId=<list-id-surrounded-by-braces>&
listTitle=<list-title>&
userEmail=<user-email>&
listTemplateTypeId=<list-base-template-id>&
webUrl=<url-encoded-absolute-path-to-folder>&
webLogoUrl=<relative-url-to-logo>&
webTemplate=<web-template>&
isSiteAdmin=<is-site-admin>

示例如下:

grvopen://https_58_47_47www_46sharepoint_46com_47Documents/_aahl00000000_450000_450000_450000_45000000000000%7D/101?OPENLIST&siteId=00000000-0000-0000-0000-000000000000&webId=00000000-0000-0000-0000-000000000000&webTitle=SharePoint%20Site%20Title&listId={00000000-0000-0000-0000-000000000000}&listTitle=Documents&userEmail=user@domain.com&listTemplateTypeId=101&webUrl=https%3A%2F%2Fwww.sharepoint.com%2FDocuments&webLogoUrl=_layouts%2F15%2Fimages%2Fsiteicon.png&webTemplate=1&isSiteAdmin=0

我不确定使用网址的下划线会产生什么样的编码,但它与解决方案无关。

我能够将Office 365中的个人OneDrive目录与我PC上的正确OneDrive客户端同步,因此我在点击&#34;同步&#34;时使用了Chrome的开发工具来监控网络流量。 。流量显示新的OneDrive客户端的以下URL格式(为了可读性添加换行符):

odopen://sync?
siteId=<site-id>&
webId=<web-id>&
webTitle=<web-title>&
listId=<list-id-surrounded-by-braces>&
listTitle=<list-title>&
userEmail=<user-email>&
listTemplateTypeId=<list-base-template-id>&
webUrl=<url-encoded-absolute-path-to-folder>&
webLogoUrl=<relative-url-to-logo>&
webTemplate=<web-template>&
isSiteAdmin=<site-admin>&
scope=OPENLIST

示例网址:

odopen://sync?siteId=%7B00000000-0000-0000-0000-000000000000%7D&webId=%7B00000000-0000-0000-0000-000000000000%7D&webTitle=SharePoint%20Site%20Title&listId=%7B00000000-0000-0000-0000-000000000000%7D&listTitle=Documents&userEmail=email%40domain.com&listTemplateTypeId=101&webUrl=https%3A%2F%2Fwww.sharepoint.com%2FDocuments&webLogoUrl=_layouts%2F15%2Fimages%2Fsiteicon.png&webTemplate=1&isSiteAdmin=0&scope=OPENLIST

与Groove链接没那么不同。为了制作格式正确的OneDrive URL,我编写了一个JavaScript书签,从SharePoint网站的DOM中提供的全局JavaScript变量_spPageContextInfo中提取必要的参数。

您可能已经注意到,上面包含Guids的参数包含在花括号中。从_spPageContextInfo中提取的Guids已经用花括号包裹。

(function() {
    var siteId = _spPageContextInfo.siteId
      , webId = _spPageContextInfo.webId
      , webTitle = _spPageContextInfo.webTitle
      , listId = _spPageContextInfo.listId
      , listTitle = _spPageContextInfo.listTitle
      , userEmail = _spPageContextInfo.userEmail
      , listTemplateTypeId = _spPageContextInfo.listBaseTemplate
      , webUrl = _spPageContextInfo.webAbsoluteUrl
      , webLogoUrl = _spPageContextInfo.webLogoUrl
      , webTemplate = _spPageContextInfo.webTemplate
      , isSiteAdmin = (_spPageContextInfo.isSiteAdmin ? 1 : 0)
      , scope = "OPENLIST";

    var oneDriveURL = "odopen://sync?";
    oneDriveURL += "siteId="+encodeURIComponent(siteId);
    oneDriveURL += "&webId="+encodeURIComponent(webId);
    oneDriveURL += "&webTitle="+encodeURIComponent(webTitle);
    oneDriveURL += "&listId="+encodeURIComponent(listId);
    oneDriveURL += "&listTitle="+encodeURIComponent(listTitle);
    oneDriveURL += "&userEmail="+encodeURIComponent(userEmail);
    oneDriveURL += "&listTemplateTypeId="+encodeURIComponent(listTemplateTypeId);
    oneDriveURL += "&webUrl="+encodeURIComponent(webUrl);
    oneDriveURL += "&webLogoUrl="+encodeURIComponent(webLogoUrl);
    oneDriveURL += "&webTemplate="+encodeURIComponent(webTemplate);
    oneDriveURL += "&isSiteAdmin="+encodeURIComponent(isSiteAdmin);
    oneDriveURL += "&scope="+encodeURIComponent(scope);

    window.location.href = oneDriveURL;
}());

要使用上述代码,请在您选择的浏览器中创建一个新书签。将以下行复制并粘贴到书签目标中:

javascript: (function() { var siteId = _spPageContextInfo.siteId , webId = _spPageContextInfo.webId , webTitle = _spPageContextInfo.webTitle , listId = _spPageContextInfo.listId , listTitle = _spPageContextInfo.listTitle , userEmail = _spPageContextInfo.userEmail , listTemplateTypeId = _spPageContextInfo.listBaseTemplate , webUrl = _spPageContextInfo.webAbsoluteUrl , webLogoUrl = _spPageContextInfo.webLogoUrl , webTemplate = _spPageContextInfo.webTemplate , isSiteAdmin = (_spPageContextInfo.isSiteAdmin ? 1 : 0) , scope = "OPENLIST"; var oneDriveURL = "odopen://sync?"; oneDriveURL += "siteId="+encodeURIComponent(siteId); oneDriveURL += "&webId="+encodeURIComponent(webId); oneDriveURL += "&webTitle="+encodeURIComponent(webTitle); oneDriveURL += "&listId="+encodeURIComponent(listId); oneDriveURL += "&listTitle="+encodeURIComponent(listTitle); oneDriveURL += "&userEmail="+encodeURIComponent(userEmail); oneDriveURL += "&listTemplateTypeId="+encodeURIComponent(listTemplateTypeId); oneDriveURL += "&webUrl="+encodeURIComponent(webUrl); oneDriveURL += "&webLogoUrl="+encodeURIComponent(webLogoUrl); oneDriveURL += "&webTemplate="+encodeURIComponent(webTemplate); oneDriveURL += "&isSiteAdmin="+encodeURIComponent(isSiteAdmin); oneDriveURL += "&scope="+encodeURIComponent(scope); window.location.href = oneDriveURL; }());

注意:此书签不起作用,除非你在&#34;文件&#34;页面或SharePoint网站的特定文档文件夹。它不会在SharePoint网站的根页面上工作,即使&#34;共享文档&#34;显示在着陆页上。