在我们公司,我们有一个SharePoint 2013安装。在我还在运行Office2013之前,我可以安装OneDrive for Business client,它允许我将SharePoint文档同步到本地PC。我最近升级到Office2016,并删除了安装OneDrive for Business,并将其替换为“新的”一个驱动器。新的OneDrive允许与OneDrive进行业务同步,但我无法找到与SharePoint同步的方法。
有人知道如何将SharePoint与运行Office 2016的PC同步吗?
发布于 2017-06-22 14:25:54
这个问题已经有一年多了,但我遇到了同样的问题,并找到了解决办法。
我面临的具体问题是试图将Office365 SharePoint共享文档文件夹与安装在我的PC上的OneDrive客户端同步。当单击联机共享文件夹上的“同步”按钮时,浏览器将尝试打开OneDrive for Business client。单击"Open OneDrive for Business“将启动应用程序并开始同步。一两分钟后,客户端将返回“此库无法再使用此应用程序同步。若要同步这些文件,请使用最新的OneDrive应用程序。”
为解决问题而采取的不成功步骤:
经过一些研究和调试,微软似乎还没有更新Office365的SharePoint来使用“下一代”OneDrive客户端的更新协议。OneDrive for Business (以前称为Groove )使用(grvopen://)与浏览器内容交互。新的OneDrive客户机使用不同的OneDrive开放协议(odopen://)。
Groove看起来如下(为可读性添加的行间隔):
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我不确定哪种编码方式会产生带有URL的下划线,但这与解决方案无关。
我能够在Office 365中获得我的个人OneDrive目录来与我的PC上正确的OneDrive客户端同步,所以当我点击"Sync“时,我使用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以及一个示例URL:
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和沟槽的链接没什么区别。为了创建一个格式正确的OneDrive URL,我编写了一个JavaScript书签来从JavaScript站点的DOM中可用的全局JavaScript变量_spPageContextInfo中提取必要的参数。
您可能已经注意到,上面包含Guids的参数是用大括号包装的。从_spPageContextInfo中提取的Guid已经用花括号包裹起来了。
(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; }());注释:这个书签无法工作,除非您在SharePoint站点的“文档”页面或特定的文档文件夹中。即使登陆页面上显示了“共享文档”,它也不能从SharePoint站点的根页面工作。
https://stackoverflow.com/questions/38115720
复制相似问题