この質問は1年以上経過していますが、同じ問題が発生したため、回避策が見つかりました。
私が直面していた問題は、Office 365 SharePoint共有ドキュメントフォルダを自分のPCにインストールされているOneDriveクライアントと同期させようとしていたことでした。共有フォルダのオンラインで[同期]ボタンをクリックすると、ブラウザはOneDrive for Businessクライアントを開こうとします。 「OneDrive for Businessを開く」をクリックすると、アプリケーションが起動され、同期が開始されます。 1〜2分後、クライアントは「このライブラリをこのアプリケーションを使用して同期することはできません。これらのファイルを同期するには、最新のOneDriveアプリケーションを使用してください。
- 新しいOneDriveクライアント
- オフィスのアカウントを削除し、「同期」を開くためにOneDrive.exe(新しいクライアント)を強制
- を再認証をアンインストール:
失敗した手順は、問題を解決するためにとらリンク
- URLをSharePointフォルダにコピーし、ライブラリとしてOneDrive for Businessクライアントに手動で追加します。
いくつかの調査とデバッグの後、マイクロソフトはOffice 365用のSharePointを、「次世代」のOneDriveクライアント用に新しいプロトコルを使用するようにまだ更新していないようです。従来Grooveと呼ばれていたOneDrive for Businessは、Groove Openプロトコル(grvopen://)を使用してブラウザコンテンツと対話します。新しいOneDriveクライアントは、異なるOneDrive Openプロトコル(odopen://)を使用します。
A 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&[email protected]&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クライアントと同期させるために、ChromeのDev Toolsを使用して、「同期」をクリックするとネットワークトラフィックを監視しました。
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:Grooveのリンクから
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形式を明らかにしました。正しくフォーマットされたOneDrive URLを作成するために、JavaScriptのブックマークレットを作成して、SharePointサイトのDOMで利用可能なグローバルJavaScript変数_spPageContextInfo
から必要なパラメータを抽出しました。
上記のGuidを含むパラメータが中括弧で囲まれていることに気付かれるかもしれません。 _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; }());
注:「ドキュメント」ページまたはSharePointサイトの特定のドキュメントフォルダにいる場合を除きはこのブックマークレットが動作しません。ランディングページに[共有ドキュメント]が表示されていても、SharePointサイトのルートページからは機能しません。