在我们公司,我们安装了SharePoint 2013。 在我还在运行Office 2013之前,我可以安装OneDrive for Business客户端,这样我就可以将SharePoint文档同步到本地PC。 我最近升级到Office 2016,并删除了OneDrive for Business的安装,并替换为" new"一个驱动器。新的OneDrive允许与OneDrive同步,但我无法找到与SharePoint同步的方法。
有谁知道如何将SharePoint与运行Office 2016的PC同步?
答案 0 :(得分:2)
这个问题已经超过一年了,但我遇到了同样的问题,并找到了解决方法。
我遇到的具体问题是尝试将Office 365 SharePoint共享文档文件夹与我PC上安装的OneDrive客户端同步。点击"同步"在线共享文件夹上的按钮,浏览器将尝试打开OneDrive for Business客户端。点击"打开OneDrive for Business"将启动应用程序并开始同步。一两分钟后,客户端将返回"此库无法再使用此应用程序同步。要同步这些文件,请使用最新的OneDrive应用程序。"
解决问题的步骤不成功:
经过一些研究和调试后,似乎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;显示在着陆页上。