Table of contents
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Zuletzt aktualisiert: 20.06.2018

Discovery Service REST API Referenz

Gilt für: Office 365

Nutzen Sie den Office 365 Discovery Service

Der Office 365 Discovery Service und das SDK für .NET sind ab dem 10. Januar 2018 veraltet und werden am 1. November 2019 vollständig außer Betrieb genommen. Verwenden Sie Microsoft Graph, um auf Office 365-Daten in einem einzigen Endpunkt zuzugreifen. Weitere Details finden Sie in unserer Ankündigung.

Um mit der Discovery Service API zu interagieren, senden Sie HTTP- und OData-Anfragen. Der Ermittlungsdienst unterstützt das Entdecken von Kalender, Kontakte, Mail, MyFiles (für OneDrive und OneDrive für Business Dienst-Endpunkte), Notes (für OneNote) und RootSite (für SharePoint).

Die Ressourcen-ID für den Ermittlungsdienst:ResourceId = https://api.office.com/discovery/.

Code-Beispiele zur Verwendung der Ermittlungsdienst-API zum Auffinden von Endpunkten für Dienste, auf die Sie über die Office 365-APIs zugreifen, finden Sie unter Office 365-APIs: Erste Schritte mit dem Ermittlungsdienst und Office 365 Ermittlungsdienst-Beispiel.

Hinweis Der Ermittlungsdienst bietet nur Funktionen für Office 365-Online-Umgebungen und funktioniert nicht für lokale Anwendungen.

Versionsverwaltung

Im Folgenden finden Sie die Versionen des Discovery Service.

Discovery Service API-EndpunktBeschreibung
https://api.office.com/discovery/v1.0/meUnterstützt einen einzigen API-Endpunkt pro Dienst für die freigegebene Version der Office 365-APIs.
Gibt OData v4 zurück (http://www.odata.org/documentation/odata-version-4-0/) standardmäßig.
https://api.office.com/discovery/v2.0/meUnterstützt mehrere API-Endpunkte pro Dienst für die freigegebene Version der Office 365-APIs.
Gibt OData v4 zurück (http://www.odata.org/documentation/odata-version-4-0/) standardmäßig.

Ermittlungsdienst-REST-Funktionen

Erste Anmeldung

Dadurch wird der Client auf eine Webseite gebracht, auf der der Benutzer Kontoinformationen eingibt. Es gibt die Endpunkte zurück, die für die Fortsetzung des Discovery Service erforderlich sind. Dies wird verwendet, wenn ein Benutzer Ihre Anwendung zum ersten Mal ausprobiert. Es verrät Ihre Anwendung:

  1. zu welcher Cloud der Benutzer gehört
  2. wohin die App den Benutzer zum Einloggen schicken kann.
  3. wohin man muss, um ein Token zu bekommen

ParameterTypBeschreibung
scopeZeichenfolgeEine durch Leerzeichen getrennte Liste von capability.operation Tokens. Dieser Bereich ist in Office 365 ausgedrückt.
Beispiel: MyFiles.Write oder Mail.Read
redirect_uriZeichenfolgeURI, auf die umgeleitet werden soll, nachdem die Autorisierung abgeschlossen ist.
Beispiel: https://contoso.com/continue
lcidZeichenfolgeOptional. Eine dezimale LCID zur Lokalisierung des Email HRD UI.
Beispiel: 1031

Note Diese API akzeptiert die Benutzer-E-Mail absichtlich nicht, da dies die Privatsphäre des Benutzers beeinträchtigen könnte, indem sie die Benutzer-E-Mail aus der aktuellen Domäne sendet.
AntwortBeschreibung
302 GefundenDer Antworttext enthält Werte über die App und den Benutzer.
AntworttextBeschreibung
Standort: redirect_URIURI, auf die umgeleitet werden soll, nachdem die Autorisierung abgeschlossen ist.
?user_email=...Die E-Mail-Adresse, die der Benutzer eingegeben hat.
&account_type=...1 - Microsoft-Konto (Live)
2 - Organisationskonto (Büro 365)
&authorization_service=...Endpunkt-URL, über die der Client einen Autorisierungscode erhalten kann.
&token_service=...Endpunkt-URL, bei der der Client einen Autorisierungscode für ein Zugriffstoken und ein Refresh-Token austauschen kann.
&scope=...Der ursprüngliche Umfang für den Zielrealm. Kunden müssen nur die Bedingungen von Office 365 kennen. Wenn der Zielrealm Live ist, wird der ursprüngliche Office 365-Bereich in Live-Begriffe übersetzt.
&unsupported_scope=...Wenn es Bereiche gibt, die nicht übersetzt werden können, werden diese ohne Änderung in unsupported_scope kompiliert, da jeder Autorisierungsdienst den Bereich nur in seinen eigenen Begriffen versteht. Da der Office 365-Autorisierungsdienst keinen Scope-Parameter akzeptiert, werden sowohl scope als auch unsupported_scope leer zurückgegeben.
&discovery_service=...Endpunkt-URL, über die der Client die Zielservices ermitteln kann.
&discovery_resource=...Ressourcenidentifizierung des Discovery Service. Sie muss als Teil der Token-Anforderung für den Discovery Service an den Token-Service übergeben werden.

Note Alle diese Informationen sind statisch für dieses Benutzerkonto. Daher sollten Clients es zwischenspeichern und dann wiederverwenden, um den Benutzer nicht mit einer unnötigen Benutzeroberfläche zu belästigen.

Beispiel:

var firstSignInUri = new Uri(string.Format("https://api.office.com/discovery/v1.0/me/FirstSignIn?redirect_uri={0}&scope={1}", TerminalUriText, Scope));
var terminalUri = new Uri(TerminalUriText);

//Starting authorization
var webAuthResult = await WebAuthenticationBroker.AuthenticateAsync(WebAuthenticationOptions.None, firstSignInUri, terminalUri)
   .AsTask().ConfigureAwait(continueOnCapturedContext: true);

//Authorization finished
If (webAuthResult.ResponseStatus == WebAuthenticationStatus.Success)
{
var userEmail = MyExtractParamter("user_email",webAuthResult.ResponseData);
var accountType = MyExtractParamter("account_type",webAuthResult.ResponseData);
var authorizationService = MyExtractParamter("authorization_service",webAuthResult.ResponseData);
var tokenService = MyExtractParamter("token_service", webAuthResult.ResponseData);
var discoveryService = MyExtractParamter("discovery_service", webAuthResult.ResponseData);
var scope = MyExtractParamter("scope",webAuthResult.ResponseData);
var unsupportedScope = MyExtractParamter("unsupported_scope", webAuthResult.ResponseData);

MyCacheUserInfo(...);
}

Entdecken Sie spezifische Dienstleistungen

Verwenden Sie die /Services API, um den Endpunkt eines bestimmten Dienstes zu ermitteln.


Header-EinstellungenBeschreibung
AuthorizationEin Zugriffstoken, das während der Autorisierungsphase erhalten wurde.
Beispiel: Autorisierung: BEARER 2YotnFZFEjr1zCsicMWpAA...
AcceptOptional. Dieser Header steuert das Format der Response-Payload:
Für Atom: Anwendung/atom+xml

Für JSON: application/json;odata=verbose

Wenn dieser Header weggelassen wird, ist die Voreinstellung Atom.

Beispiel: Accept: application/json;odata=verbose
ParameterTypBeschreibung
$selectZeichenfolgeOptional. Eine kommagetrennte Liste von Objekteigenschaften. Bewirkt, dass der Dienst nur die ausgewählten Eigenschaften projiziert. Es wird verwendet, um Bandbreite zu sparen, indem keine Eigenschaften heruntergeladen werden, die nicht von der Anwendung verwendet werden. Siehe http://www.odata.org/docs/.
Beispiel: Leistungsfähigkeit, ServiceUri
$filterZeichenfolgeOptional. Ein OData-Prädikat, das die ursprüngliche Ergebnismenge filtert. Es wird verwendet, um Bandbreite zu sparen, indem keine Eigenschaften heruntergeladen werden, die nicht von der Anwendung verwendet werden. Siehe http://www.odata.org unter der Registerkarte Dokumentation für die verfügbaren Prädikatfunktionen.
AntwortBedeutungBeschreibung
200OKDer Response-Body enthält eine Liste von ServiceInfo-Schema -Einträgen, die entsprechend der OData-Anfrage projiziert, gefiltert und kodiert werden. Siehe Definition des Schemas ServiceInfo-Schema .

Beispiel:

var url = string.Format("https://api.office.com/discovery/v1.0/me/services", discoveryService);

var request = HttpWebRequest.CreateHttp(url);
request.Method = "GET";
request.Headers["Authorization"] = "Bearer " + accessToken;

var response = await request.GetResponseAsync().ConfigureAwait(continueOnCapturedContext: true) as HttpWebResponse;

Erfahren Sie, welche Services auffindbar sind

Verwenden Sie die /allservices API, um alle auffindbaren Fähigkeiten zusammen mit den Diensten, die sie implementieren, zu lernen. /AllServices akzeptiert anonyme Anfragen und benötigt daher kein Zugriffstoken.


Header-EinstellungenBeschreibung
AcceptOptional. Dieser Header steuert das Format der Response-Payload:
Für Atom: Anwendung/atom+xml

Für JSON: application/json;odata=verbose

Wenn dieser Header weggelassen wird, ist die Voreinstellung Atom.

Beispiel: Accept: application/json;odata=verbose
ParameterTypBeschreibung
$selectZeichenfolgeOptional. Eine kommagetrennte Liste von Objekteigenschaften. Bewirkt, dass der Dienst nur die ausgewählten Eigenschaften projiziert. Es wird verwendet, um Bandbreite zu sparen, indem keine Eigenschaften heruntergeladen werden, die nicht von der Anwendung verwendet werden. Siehe http://www.odata.org/docs/. Beispiel: Leistungsfähigkeit, ServiceUri
$filterZeichenfolgeOptional. Ein OData-Prädikat, das die ursprüngliche Ergebnismenge filtert. Es wird verwendet, um Bandbreite zu sparen, indem keine Eigenschaften heruntergeladen werden, die nicht von der Anwendung verwendet werden. Siehe http://www.odata.org unter der Registerkarte Dokumentation für die verfügbaren Prädikatfunktionen.
AntwortBedeutungBeschreibung
200OKDer Response-Body enthält eine Liste von ServiceInfo-Schema -Einträgen, die entsprechend der OData-Anfrage projiziert, gefiltert und kodiert werden. Siehe Definition des Schemas ServiceInfo-Schema.

Beispiel:

var request = HttpWebRequest.CreateHttp("https://api.office.com/discovery/v1.0/me/services");
request.Method = "GET";
request.Headers["Accept"] = "application/json;odata=verbose";

var response = await request.GetResponseAsync().ConfigureAwait(continueOnCapturedContext: true) as HttpWebResponse;

ServiceInfo-Schema

Die /services API und /allservices API APIs verwenden ServiceInfo-Einträge in ihrem Antworttext.


EigenschaftTypBeispiel
KapazitätZeichenfolgeMeineDateien
ServiceIDZeichenfolge
SendernameZeichenfolgeO365_SHAREPOINT
serviceEndpointUriZeichenfolgehttps://contoso-my.sharepoint.com/personal/alexd_contoso_com
serviceRessourceIdZeichenfolgehttps://contoso-my.sharepoint.com

Zusätzliche Ressourcen

© 2018 Microsoft