Freigeben über


Kürzeres Link freigeben-Format in OneDrive und SharePoint

Die Links zu freigegebenen Dateien und Ordnern in OneDrive und SharePoint sind jetzt kürzer und verfügen über ein neues Format. Das folgende Beispiel zeigt das alte und neue Format für einen OneDrive-Link, der für jeden innerhalb der Organisation geeignet ist.


Altes Linkformat Neues Linkformat
https://contoso-my.sharepoint.com/personal/john_contoso_com/_layouts/15/guestaccess.aspx?share=ERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw https://contoso-my.sharepoint.com/:w:/p/john_contoso_com/ERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Hinweis

Links, die vor der Einführung dieser Änderung freigegeben wurden, sind von dieser Änderung nicht betroffen und funktionieren weiterhin.

Das neue Linkformat kann sich auf Anwendungen oder Dienste auswirken, die Abhängigkeiten von OneDrive- oder SharePoint-URL-Strukturen untersuchen oder annehmen, insbesondere wenn diese Anwendungen oder Dienste die Website-URL oder bestimmte Zeichenfolgen analysieren. Die neuen kurzen Links sind mit allen APIs kompatibel, die mit guestaccess.aspx Links funktionieren.

Nachfolgend sind einige Szenarien aufgeführt, die von dieser Änderung betroffen sind:

  • Programme, die eine URL-Eingabe durch einen Endbenutzer analysieren, um die URL der Website zu erhalten und SharePoint-REST-API-Anforderungen, wie z. B. GetFileByUrl oder GetSharingLinkData, zu erstellen.

  • Programme, die die URL-Eingabe eines Endbenutzers übernehmen und CSOM verwenden, um Dateiinformationen abzurufen.

  • Programme, die die URL-Eingabe eines Endbenutzers analysieren, um festzustellen, ob es sich um einen anonymen oder einen ausschließlich internen Freigabelink handelt.

Apps, die Microsoft Graph für die Interaktion mit SharePoint-Links verwenden, funktionieren weiterhin. Weitere Informationen finden Sie unter Zugreifen auf freigegebene DriveItems.

REST-API für SharePoint

Die SharePoint-REST-API verfügt nicht über eine unterstützte Möglichkeit zur Interaktion mit Benutzereingabelinks. Es wird empfohlen, nach Möglichkeit zur Microsoft Graph-Freigabe-API zu migrieren.

Wenn Sie nicht zu Microsoft Graph migrieren können, können Sie die folgende Problemumgehung verwenden. Beachten Sie, dass diese Problemumgehung nicht unterstützt wird.

  1. Bestimmen Sie die Basis-URL. Dies ist jetzt der Hostname des Links.

  2. Erstellen Sie die API-Anfrage durch das Verketten der Basis-URL, SP.RemoteWeb, und eine bestimmte API-Methode, wie dargestellt.

    {hostname}/_api/SP.RemoteWeb(@a)/web/{specific_api_here}?@a='{url_encoded_link}'

Zum Beispiel für die folgende Eingabe-URL:

https://contoso-my.sharepoint.com/personal/john_contoso_com/_layouts/15/guestaccess.aspx?share=ERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Dies ist die ursprüngliche API-Anforderung:

https://contoso-my.sharepoint.com/personal/john_contoso_com/_api/web/GetFileByUrl(@url)?@url='https%3A%2F%2Fcontoso-my.sharepoint.com%2Fpersonal%2Fjohn_contoso_com%2F_layouts%2F15%2Fguestaccess.aspx%3Fshare%3DERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Dies ist die neue API-Anforderung:

https://contoso-my.sharepoint.com/_api/SP.RemoteWeb(@url)/web/GetFileByUrl(@url)?@url='https%3A%2F%2Fcontoso-my.sharepoint.com%2Fpersonal%2Fjohn_contoso_com%2F_layouts%2F15%2Fguestaccess.aspx%3Fshare%3DERGZUIZ8E0pAuC1oJtwz4dQB23IabPgbMtiVe0OLPtMybw

Um den spezifischen Linktyp zu bestimmen, überprüfen Sie die IsSharingLink Felder und IsAnonymous in der Antwort für die GetSharingLinkData-API (ersetzen Sie in den Beispielen GetFileByUrl durch GetSharingLinkData ). Verwenden Sie diese Methode, anstatt URLs für Token wie guestaccess.aspxzu analysieren.

SharePoint-CSOM

CSOM verfügt nicht über eine unterstützte Möglichkeit zur Interaktion mit Benutzereingabelinks. Einige Anwendungen öffnen einen ClientContext und fragen die Dateimetadaten ab, indem pfadsegmente aus dem SharePoint-Link nacheinander abgeschnitten werden, bis der ClientContext-Konstruktor erfolgreich ist. Dieser Ansatz funktioniert nicht mehr mit dem neuen URL-Format.

So umgehen Sie dieses Problem:

  1. Öffnen Sie einen ClientContext auf der Stammwebsite (scheme://hostname).

  2. Rufen Sie Web.WebUrlFromPageUrlDirect() ab, um die Web-URL des Links zu erhalten.

  3. Öffnen Sie mit dieser Web-URL einen neuen ClientContext, um eine zusätzliche Anforderung auszuführen.

Hinweis

Dieser Ansatz wird nicht unterstützt.