Freigeben über


REST API-Referenz für Office 365-Datenerweiterungen (Beta)

Gilt für: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

Hinweis

Diese Dokumentation behandelt die Betaversion der Office 365-Data Extensions-API im Vorschaumodus. Die Funktionen der Vorschauversion können vor der Fertigstellung geändert werden und können den Code, der sie verwendet, unterbrechen. Aus diesem Grund sollten Sie in der Regel nur eine Produktionsversion einer API in Ihrem Produktionscode verwenden. Falls verfügbar, ist v2.0 derzeit die bevorzugte Version.

Die Office 365-Datenerweiterungen-REST-API ermöglicht es Apps, benutzerdefinierte Daten in einer Nachricht, einem Ereignis oder einem Kontakt des Benutzerkontos dynamisch zu speichern. Das Konto kann sich in Office 365 oder in einem Microsoft-Konto (Hotmail.com, Live.com, MSN.com, Outlook.com und Passport.com) befinden.

Hinweis

Zur Vereinfachung der Referenz verwendet der Rest dieses Artikels Outlook.com,um diese Microsoft-Kontodomänen aufzunehmen.

Sie interessieren sich nicht für die Beta-Version der API? Wechseln Sie im Inhaltsverzeichniss auf der linken Seite zu Office 365 REST API reference und wählen Sie die gewünschte Version aus.

Übersicht

Eine Datenerweiterung in der Outlook-REST-API ist ein offener OData v4-Typ, der Eigenschaften enthält, die Sie zur Laufzeit angeben können. Sie können die Datenerweiterungen-API verwenden, um eine Instanz eines bereits im Entity Data Model (EDM) definierten Entitätstyps zu erweiter - nämlich eine Nachricht, ein Ereignis oder einen Kontakt - durch dynamische Angabe benutzerdefinierter Eigenschaften und Werte in einer JSON-Nutzlast. Dies macht die Definition solcher Entitätstypen flexibler und erspart Ihnen Zeit, neue Entitätstypen nur für diesen Zweck zu definieren.

Die Eigenschaft ExtensionName ist die einzige Eigenschaft, die für alle Erweiterungen definiert ist. Um sicherzustellen, dass Erweiterungsnamen eindeutig sind, können Sie ein umgekehrtes DNS-Format (Domain Name System) verwenden, das z. B. von Ihrer eigenen DomäneCom.Contoso.Contact, abhängig ist. Verwenden Sie in einem Erweiterungsnamen auf keinen Fall die Microsoft-Domäne.

Da eine Erweiterung ein offener Typ ist, können Sie zusätzliche Daten spezifisch für eine Instanz einer Entität angeben. Sie können beispielsweise eine Erweiterung für einzelne Geschäftskontakte erstellen, die benutzerdefinierte Daten wie den Firmennamen und den erstmaligen Referrer verfolgt und die Daten in der JSON-Nutzlast wie folgt angeben:

POST https://outlook.office.com/api/beta/me/contacts('{contact_id}')/extensions
{
   @odata.type: "Microsoft.OutlookServices.OpenTypeExtension",  
   "ExtensionName": "Com.Contoso.Customer",
   "CompanyName": "Alpine Skis",
   "InitialReferrer":  "Robin McCall"
}

Sie können die Datenerweiterungs-API verwenden, um CRUD-Operationen in einer neuen oder bestehenden Ressource durchzuführen. Lesen Sie mehr über die unterstützten Operationen.

Weitere Informationen zu OData open type finden Sie in der OData v4-Dokumentation auf OData.org.

Verwendung der Datenerweiterungen-REST-API

Datenerweiterungen oder erweiterte Eigenschaften?

Datenerweiterungen sind die empfohlene Lösung für die meisten Szenarien, bei denen es um die Speicherung und den Zugriff auf benutzerdefinierte Daten geht. Wenn Sie jedoch auf benutzerdefinierte Daten für Outlook MAPI-Eigenschaften zugreifen müssen, die nicht bereits über die Outlook REST-API-Metadaten verfügbar sind, können Sie erweiterte Eigenschaften und deren REST-APIverwenden. Sie können überprüfen, welche Eigenschaften die Metadaten bei https://outlook.office.com/api/{version}/$metadata anzeigen, indem Sie {version} durch v2.0, beta, etc. ersetzen.

Authentifizierung

Wie andere Outlook-REST-API sollten Sie für jede Anforderung an die Datenerweiterungen-REST-API ein gültiges Zugriffstoken einschließen. Sie müssen Ihre App registriert und identifiziert haben und die entsprechende Autorisierung erhalten haben, um ein Zugriffstoken abzurufen.

Sie können mehr über einige optimierte Registrierungs- und Autorisierungsoptionen für Sie herausfinden. Beachten Sie dies, wenn Sie mit den spezifischen Operationen in der Datenerweiterungen-REST-API fortfahren.

Unterstützte REST-Ressourcen

Sie können Erweiterungen für Instanzen der folgenden Ressourcen im Outlook-REST-Endpunkt erstellen:

Version der API

Diese API wurde von der Vorschauversion auf den Status Allgemeine Verfügbarkeit (GA) befördert. Es wird in den Versionen v2.0 und beta unterstützt:

https://outlook.office.com/api/v2.0/

https://outlook.office.com/api/beta/

URL-Parameter

Die Beispiele in diesem Artikel verwenden die folgenden ID-Platzhalter in den Parametern für REST-Anforderungs-URLs. Sie müssen die ID der Instanz der Ressource angeben, für die Sie eine Erweiterung anlegen wollen.

Parameter Typ Beschreibung
URL-Parameter
kontakt_id Zeichenfolge Die Kontakt-ID.
ereignis_id Zeichenfolge Die Ereignis-ID.
nachricht_id Zeichenfolge Die Nachrichten-ID.

Siehe Verwendung der Outlook-REST-API für weitere Informationen, die allen Untergruppen der Outlook-REST-API und der Office 365 Datenerweiterungen-REST-API gemeinsam sind.

Erweiterungsoperationen

Erweiterung in einem bestehenden Eintrag anlegen

Erstellen einer Erweiterung und hinzufügen benutzerdefinierter Eigenschaften für die angegebene Instanz einer Ressource. Die Ressource kann eine Nachricht, ein Kalenderereignis oder ein Kontakt in Office 365 oder Outlook.com sein. Die Daten in der JSON-Nutzlast können primitive Typen oder Arrays von primitiven Typen sein.

Um eine Erweiterung für jede der unterstützten Ressourcen zu erstellen:

POST https://outlook.office.com/api/beta/me/messages('{message_id}')/extensions
POST https://outlook.office.com/api/beta/me/events('{event_id}')/extensions
POST https://outlook.office.com/api/beta/me/contacts('{contact_id}')/extensions

Minimal benötigter Bereich

Einer der folgenden Lese- / Schreibbereiche für die Zielressource:

Parameter Typ Beschreibung
Textparameter
Erweiterungsname Zeichenfolge Eine eindeutige Textidentifizierung für eine Erweiterung. Erforderlich.

Beispielanfrage

In diesem Beispiel wird eine Erweiterung für die angegebene Nachricht erstellt. Der Anforderungstext enthält folgendes für die Erweiterung:

  • Der Typ Microsoft.OutlookServices.OpenTypeExtension, der in den Outlook-REST-API-Metadaten als OData-Open-Typ definiert ist.
  • Der Erweiterungsname "Com.Contoso.Referral".
  • Zusätzliche Daten, die als benutzerdefinierte Eigenschaften in der JSON-Nutzlast gespeichert werden sollen: CompanyName, DealValue und ExpirationDate die primitive Typen enthalten und TopModels und TopSalespersons, die Arrays von primitiven Typen enthalten.
POST https://outlook.office.com/api/beta/me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions

Content-Type: application/json

{ 
  "@odata.type" : "Microsoft.OutlookServices.OpenTypeExtension", 
  "ExtensionName" : "Com.Contoso.Referral", 
  "CompanyName" : "Wingtip Toys",
  "DealValue@odata.type": "#Int64", 
  "DealValue" : 500050, 
  "ExpirationDate" : "2015-12-03T10:00:00.000Z",
  "TopModels": [
     3001,
     4002,
     5003
  ],
  "TopSalespersons": [
     "Dana Swope",
     "Fanny Downs",
     "Randi Welch"
  ]
} 

Beispielantwort

Eine erfolgreiche Antwort wird mit einemHTTP 201 CreatedAntwortcode angegeben.

Der Antworttext enthält folgendes für die neue Erweiterung:

  • Die Standardeigenschaft ExtensionName.
  • Die Eigenschaft Id mit dem vollqualifizierten Namen Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral.
  • Die benutzerdefinierten Daten, die gespeichert werden sollen
{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/Extensions/$entity",
    "@odata.type": "#Microsoft.OutlookServices.OpenTypeExtension",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions
('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
    "ExtensionName": "Com.Contoso.Referral",
    "Id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
    "CompanyName": "Wingtip Toys",
    "DealValue@odata.type": "#Int64",
    "DealValue": 500050,
    "ExpirationDate": "2015-12-03T10:00:00.000Z",
    "TopModels@odata.type": "#Collection(Int32)",
    "TopModels": [
      3001,
      4002,
      5003
    ],
    "TopSalespersons@odata.type": "#Collection(String)",
    "TopSalespersons": [
      "Dana Swope",
      "Fanny Downs",
      "Randi Welch"
    ]
}

Erstellen einer Erweiterung in einem neuen Eintrag

Erstellen Sie eine oder mehrere Erweiterungen beim Erstellen einer neuen Instanz einer Ressource, alle im selben POST-Aufruf, und fügen Sie der Erweiterung benutzerdefinierte Eigenschaften hinzu. Die Ressource kann eine Nachricht, ein Kalenderereignis oder ein Kontakt in Office 365 oder Outlook.com sein. Die Daten in der JSON-Nutzlast können primitive Typen oder Arrays von primitiven Typen sein.

Um eine Erweiterung für jede der unterstützten Ressourcen zu erstellen, führen Sie einen POST-Aufruf durch, ähnlich dem Erstellen dieser Ressource, und fügen Sie eine Erweiterung in den Text der POST-Anfrage ein.

POST https://outlook.office.com/api/beta/me/messages
POST https://outlook.office.com/api/beta/me/events
POST https://outlook.office.com/api/beta/me/contacts

Minimal benötigter Bereich

Einer der folgenden Lese- / Schreibbereiche für die Zielressource:

Parameter Typ Beschreibung
Textparameter
Erweiterungsname Zeichenfolge Eine eindeutige Textidentifizierung für eine Erweiterung. Erforderlich.

Beispielanfrage

Dieses Beispiel erzeugt eine Nachricht und eine Erweiterung im selben Aufruf. Der Anfragetext umfasst Folgendes:

  • Die für eine neue Nachricht typischen Eigenschaften subject, body und toRecipients.
  • Und für die Erweiterung:
    • Der Typ Microsoft.OutlookServices.OpenTypeExtension, der in den Outlook-REST-API-Metadaten als OData-Open-Typ definiert ist.
    • Der Erweiterungsname "Com.Contoso.Referral".
    • Zusätzliche Daten, die als benutzerdefinierte Eigenschaften in der JSON-Nutzlast gespeichert werden sollen: CompanyName, ExpirationDate und DealValue die primitive Typen enthalten und TopModels und TopSalespersons, die Arrays von primitiven Typen enthalten.
POST https://outlook.office.com/api/beta/me/messages

Content-Type: application/json

{
  "Subject": "Annual review",
  "Body": {
    "ContentType": "HTML",
    "Content": "You should be proud!"
  },
  "ToRecipients": [
    {
      "EmailAddress": {
        "Address": "rufus@contoso.com"
      }
    }
  ],
  "Extensions": [
    {
      "@odata.type": "Microsoft.OutlookServices.OpenTypeExtension",
      "ExtensionName": "Com.Contoso.Referral",
      "CompanyName": "Wingtip Toys",
      "ExpirationDate": "2015-12-30T11:00:00.000Z",
      "DealValue": 10000,
      "TopModels": [
        3001,
        4002,
        5003
      ],
      "TopSalespersons": [
        "Dana Swope",
        "Fanny Downs",
        "Randi Welch"
      ]
    }
  ]
}

Beispielantwort

Eine erfolgreiche Antwort wird mit einemHTTP 201 CreatedAntwortcode angegeben.

Der Antworttext enthält die Eigenschaften der neuen Nachricht und die folgenden für die neue Erweiterung:

  • Die Eigenschaft Id mit dem vollqualifizierten Namen Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral.
  • Die in der Anforderung angegebene Standardeigenschaft ExtensionName.
  • Die in der Anforderung angegebenen benutzerdefinierten Daten, gespeichert als benutzerdefinierte Eigenschaften.
{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('ddfc984d-b826-40d7-b48b-57002df800e5@1717f226-49d1-4d0c-9d74-709fad664b77')/Messages
('AAMkAGEbs88AAB84uLuAAA=')",
  "@odata.etag": "W/\"CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AAB88LOj\"",
  "Id": "AAMkAGEbs88AAB84uLuAAA=",
  "CreatedDateTime": "2015-10-30T03:03:43Z",
  "LastModifiedDateTime": "2015-10-30T03:03:43Z",
  "ChangeKey": "CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AAB88LOj",
  "Categories": [ ],
  "ReceivedDateTime": "2015-10-30T03:03:43Z",
  "SentDateTime": "2015-10-30T03:03:43Z",
  "HasAttachments": false,
  "Subject": "Annual review",
  "Body": {
    "ContentType": "HTML",
    "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r
\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\nYou should be proud!\r\n</body>\r
\n</html>\r\n"
  },
  "BodyPreview": "You should be proud!",
  "Importance": "Normal",
  "ParentFolderId": "AQMkAGEwAAAIBDwAAAA==",
  "Sender": null,
  "From": null,
  "ToRecipients": [
    {
      "EmailAddress": {
        "Address": "rufus@contoso.com",
        "Name": "John Doe"
      }
    }
  ],
  "CcRecipients": [ ],
  "BccRecipients": [ ],
  "ReplyTo": [ ],
  "ConversationId": "AAQkAGEFGugh3SVdMzzc=",
  "IsDeliveryReceiptRequested": false,
  "IsReadReceiptRequested": false,
  "IsRead": true,
  "IsDraft": true,
  "WebLink": "https://outlook.office.com/owa/?
ItemID=AAMkAGEbs88AAB84uLuAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
  "MentionedMe": null,
  "Mentioned": [ ],
  "InferenceClassification": "Focused",
  "Extensions@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages
('AAMkAGEbs88AAB84uLuAAA%3D')/Extensions",
  "Extensions": [
    {
      "@odata.type": "#Microsoft.OutlookServices.OpenTypeExtension",
      "@odata.id": "https://outlook.office.com/api/beta/Users('ddfc984d-b826-40d7-b48b-57002df800e5@1717f226-49d1-4d0c-9d74-709fad664b77')/Messages
('AAMkAGEbs88AAB84uLuAAA=')/extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
      "Id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
      "ExtensionName": "Com.Contoso.Referral",
      "CompanyName": "Wingtip Toys",
      "ExpirationDate": "2015-12-30T11:00:00.000Z",
      "DealValue": 10000,
      "TopModels@odata.type": "#Collection(Int32)",
      "TopModels": [
        3001,
        4002,
        5003
      ],
      "TopSalespersons@odata.type": "#Collection(String)",
      "TopSalespersons": [
        "Dana Swope",
        "Fanny Downs",
        "Randi Welch"
      ]
    }
  ]
}

Erweiterung abrufen

Rufen Sie eine Erweiterung nach Name oder ID innerhalb der angegebenen Instanz einer Ressource ab. Die Ressource kann eine Nachricht, ein Kalenderereignis oder ein Kontakt in Office 365 oder Outlook.com sein.

Wenn Sie die Erweiterung nach Name oder nach ID abrufen, wird derselbe Antworttext zurückgegeben.

GET https://outlook.office.com/api/beta/me/messages('{message_id}')/extensions('{extensionId}')
GET https://outlook.office.com/api/beta/me/events('{event_id}')/extensions('{extensionId}')
GET https://outlook.office.com/api/beta/me/contacts('{contact_id}')/extensions('{extensionId}')

Minimal benötigter Bereich

Einer der folgenden Lese- / Schreibbereiche für die Zielressource:

Parameter Typ Beschreibung
URL-Parameter
Erweiterungs-ID Zeichenfolge Dies kann ein Erweiterungsname sein, der ein unter allen Erweiterungen einer Ressourceninstanz eindeutiger Textbezeichner ist, oder ein vollqualifizierter Name, der den Erweiterungstyp und die eindeutige Textkennung verkettet. Der vollqualifizierte Name wird in der Id-Eigenschaft zurückgegeben, wenn Sie die Erweiterung erstellen. Erforderlich.

Beispielanfrage

Das erste Beispiel referenziert eine Erweiterung über ihren Namen und ruft die Erweiterung in der angegebenen Nachricht ab.

GET https://outlook.office.com/api/beta/me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions('Com.Contoso.Referral')

Das zweite Beispiel referenziert eine Erweiterung über ihre ID (vollqualifizierter Name) und ruft die Erweiterung in der angegebenen Nachricht ab.

GET https://outlook.office.com/api/beta/me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')

Beispielantwort

Eine erfolgreiche Antwort wird mit einemHTTP 200 OKAntwortcode angegeben.

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/Extensions/$entity",
    "@odata.type": "#Microsoft.OutlookServices.OpenTypeExtension",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions
('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
    "ExtensionName": "Com.Contoso.Referral",
    "Id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
    "CompanyName": "Wingtip Toys",
    "DealValue": 500050,
    "ExpirationDate": "2015-12-03T10:00:00Z"
}

Element mit Erweiterung abrufen

Ruft eine Instanz einer Ressource ab, die mit der Erweiterung erweitert wurde, die durch einen Filter auf der Id angegeben ist. Die Ressource kann eine Nachricht, ein Kalenderereignis oder ein Kontakt in Office 365 oder Outlook.com sein.

Sie können auf der Id nach dem Erweiterungsnamen oder dem vollqualifizierten Namen filtern und dann die Instanz wie unten gezeigt mit der Erweiterung erweitern lassen. Stellen Sie sicher, dass Sie für die Leerzeichen in der Filter-Zeichenfolge die URL-Codierung verwenden.

GET https://outlook.office.com/api/beta/me/messages('{message_id}')?$expand=Extensions($filter=Id eq '{extensionId}')

GET https://outlook.office.com/api/beta/me/events('{event_id}')?$expand=Extensions($filter=Id eq '{extensionId}')

GET https://outlook.office.com/api/beta/me/contacts('{contact_id}')?$expand=Extensions($filter=Id eq '{extensionId}')

Minimal benötigter Bereich

Einer der folgenden Lese- / Schreibbereiche für die Zielressource:

Parameter Typ Beschreibung
URL-Parameter
Erweiterungs-ID Zeichenfolge Dies kann ein Erweiterungsname sein, der ein unter allen Erweiterungen einer Ressourceninstanz eindeutiger Textbezeichner ist, oder ein vollqualifizierter Name, der den Erweiterungstyp und die eindeutige Textkennung verkettet. Der vollqualifizierte Name wird in der Id-Eigenschaft zurückgegeben, wenn Sie die Erweiterung erstellen. Erforderlich.

Beispielanfrage

Das folgende Beispiel ruft die angegebene Nachricht ab und erweitert sie, indem es die von einem Filter zurückgegebene Erweiterung einbezieht. Der Filter gibt die Erweiterung zurück, deren Id einem vollqualifizierten Namen entspricht.

Um es Ihnen einfacher zu machen wird die Anfrage unten mit URL-Codierung des reservierten Zeichens, dem Leerzeichen, angezeigt.

GET https://outlook.office.com/api/beta/me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')?$expand=Extensions($filter=Id%20eq%20'Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')

Beispielantwort

Eine erfolgreiche Antwort wird mit einemHTTP 200 OKAntwortcode angegeben.

Der Antworttext enthält alle Eigenschaften der angegebenen Nachricht und die vom Filter zurückgegebene erweiterte Eigenschaft.

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages/$entity",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')",
    "@odata.etag": "W/\"CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AABNsWMM\"",
    "Id": "AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===",
    "ChangeKey": "CQAAABYAAACY4MQpaFz9SbqUDe4+bs88AABNsWMM",
    "Categories": [
    ],
    "CreateDateTime": "2015-06-19T02:03:31Z",
    "LastModifiedDateTime": "2015-08-13T02:28:00Z",
    "Subject": "Attached is the requested info",
    "BodyPreview": "See the images attached.",
    "Body": {
        "ContentType": "HTML",
        "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<style type=\"text/css\" style=\"display:none;\"><!-- P {margin-top:0;margin-bottom:0;} --></style>\r\n</head>\r\n<body dir=\"ltr\">\r\n<div id=\"divtagdefaultwrapper\" style=\"font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;\">\r\n<p>See the images attached. <br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n"
    },
    "Importance": "Normal",
    "HasAttachments": true,
    "ParentFolderId": "AQMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===QAAAA==",
    "From": {
        "EmailAddress": {
            "Address": "desmond@contoso.com",
            "Name": "Desmond Raley"
        }
    },
    "Sender": {
        "EmailAddress": {
            "Address": "desmond@contoso.com",
            "Name": "Desmond Raley"
        }
    },
    "ToRecipients": [
        {
            "EmailAddress": {
                "Address": "wendy@contoso.com",
                "Name": "Wendy Molina"
            }
        }
    ],
    "CcRecipients": [
    ],
    "BccRecipients": [
    ],
    "ReplyTo": [
    ],
    "ConversationId": "AAQkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===mivdTmQ=",
    "ReceivedDateTime": "2015-06-19T02:05:04Z",
    "SentDateTime": "2015-06-19T02:04:59Z",
    "IsDeliveryReceiptRequested": false,
    "IsReadReceiptRequested": false,
    "IsDraft": false,
    "IsRead": true,
    "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===%2FNJTqt5NqHlVnKVBwCY4MQpaFz9SbqUDe4%2Bbs88AAAAAAEJAACY4MQpaFz9SbqUDe4%2Bbs88AAApA4JMAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
    "MentionedMe": null,
    "Mentioned": [
    ],
    "InferenceClassification": "Focused",
    "Extensions@odata.context": "https://outlook.office.com/api/beta/$metadata#Users('desmond40contoso.com')/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/Extensions", 
    "Extensions": [ 
      { 
        "@odata.type": "#Microsoft.OutlookServices.OpenTypeExtension",
        "@odata.id": "https://outlook.office.com/api/beta/Users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
        "ExtensionName": "Com.Contoso.Referral",
        "Id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
        "CompanyName": "Wingtip Toys",
        "DealValue": 500050,
        "ExpirationDate": "2015-12-03T10:00:00Z"
      }
     ]
}

Suchen und Erweitern von Objekten mit einer Erweiterung

Sie können Instanzen einer Ressource finden, die eine Erweiterung enthalten, die zu einem Filter passt. Zusätzlich können Sie in der gleichen Abfrage diese Instanzen mit der Erweiterung erweitern. Die Abfragen in diesem Abschnitt finden solche Fälle, erweitern sie und nehmen die Erweiterung in die Antwort auf.

Die Ressource kann eine Nachricht, ein Kalenderereignis oder ein Kontakt in Office 365 oder Outlook.com sein.

Sie können auf der Id nach dem Erweiterungsnamen oder dem vollqualifizierten Namen filtern und dann die Instanz wie unten gezeigt mit der Erweiterung erweitern lassen. Stellen Sie sicher, dass Sie für die Leerzeichen in der Filter-Zeichenfolge die URL-Codierung verwenden.

GET https://outlook.office.com/api/beta/me/messages?$filter=Extensions/any(f:f/Id eq '{extensionId}')&$expand=Extensions($filter=Id eq '{extensionId}')

GET https://outlook.office.com/api/beta/me/events?$filter=Extensions/any(f:f/Id eq '{extensionId}')&$expand=Extensions($filter=Id eq '{extensionId}')

GET https://outlook.office.com/api/beta/me/contacts?$filter=Extensions/any(f:f/Id eq '{extensionId}')&$expand=Extensions($filter=Id eq '{extensionId}')

Minimal benötigter Bereich

Einer der folgenden Lese- / Schreibbereiche für die Zielressource:

Parameter Typ Beschreibung
URL-Parameter
Erweiterungs-ID Zeichenfolge Dies kann ein Erweiterungsname sein, der ein unter allen Erweiterungen einer Ressourceninstanz eindeutiger Textbezeichner ist, oder ein vollqualifizierter Name, der den Erweiterungstyp und die eindeutige Textkennung verkettet. Der vollqualifizierte Name wird in der Id-Eigenschaft zurückgegeben, wenn Sie die Erweiterung erstellen. Erforderlich.

Beispielanfrage

Das folgende Beispiel durchsucht alle Nachrichten im Postfach des angemeldeten Benutzers, um diejenigen zu finden, die eine Erweiterung enthalten, die einem Filter entspricht und erweitert sie um die Erweiterung. Der Filter gibt Erweiterungen zurück, bei denen die Id mit dem Namen der Erweiterung Com.Contoso.Referral übereinstimmen.

Um es Ihnen einfacher zu machen wird die Anfrage unten mit URL-Codierung des reservierten Zeichens, dem Leerzeichen, angezeigt.

GET https://outlook.office.com/api/beta/me/messages?$filter=Extensions/any(f:f/Id%20eq%20'Com.Contoso.Referral')&$expand=Extensions($filter=Id%20eq%20'Com.Contoso.Referral')

Beispielantwort

Eine erfolgreiche Antwort wird mit einemHTTP 200 OKAntwortcode angegeben.

Der Antworttext enthält alle Nachrichten, die eine passende Erweiterung haben, sowie alle Nachrichten-Eigenschaften. In diesem Beispiel enthält die Antwort zwei Nachrichten.

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages",
    "value": [
        {
            "@odata.type": "#Microsoft.OutlookServices.EventMessage",
            "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Messages('AAMkADIyDREAAA=')",
            "@odata.etag": "W/\"DAAAABYAAACGYzsRv+OAR5zyXf6CQkRrAAADJ9tn\"",
            "Id": "AAMkADIyDREAAA=",
            "CreatedDateTime": "2016-01-06T02:20:17Z",
            "LastModifiedDateTime": "2016-01-13T02:13:54Z",
            "ChangeKey": "DAAAABYAAACGYzsRv+OAR5zyXf6CQkRrAAADJ9tn",
            "Categories": [
            ],
            "ReceivedDateTime": "2016-01-06T02:20:18Z",
            "SentDateTime": "2016-01-06T02:20:18Z",
            "HasAttachments": false,
            "InternetMessageId": "<BY1PR19MB0023E92E0B43F5E268406F0DF5F40@BY1PR19MB0023.namprd19.prod.outlook.com>",
            "Subject": "Accepted: Latin American Product Manual Group",
            "Body": {
                "ContentType": "Text",
                "Content": ""
            },
            "BodyPreview": "",
            "Importance": "Normal",
            "ParentFolderId": "AAMkADIyAAAAEJAAA=",
            "Sender": {
                "EmailAddress": {
                    "Name": "MOD Administrator",
                    "Address": "admin@adatumltd.onmicrosoft.com"
                }
            },
            "From": {
                "EmailAddress": {
                    "Name": "MOD Administrator",
                    "Address": "admin@adatumltd.onmicrosoft.com"
                }
            },
            "ToRecipients": [
                {
                    "EmailAddress": {
                        "Name": "Engineering",
                        "Address": "engineering@adatumltd.onmicrosoft.com"
                    }
                }
            ],
            "CcRecipients": [
            ],
            "BccRecipients": [
            ],
            "ReplyTo": [
            ],
            "ConversationId": "AAQkADIyWejUoYAg=",
            "IsDeliveryReceiptRequested": null,
            "IsReadReceiptRequested": false,
            "IsRead": true,
            "IsDraft": false,
            "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkADIyDREAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
            "InferenceClassification": "Focused",
            "UnsubscribeData": [
            ],
            "UnsubscribeEnabled": false,
            "MeetingMessageType": "MeetingAccepted",
            "StartDateTime": {
                "DateTime": "2015-01-05T19:00:00.0000000",
                "TimeZone": "UTC"
            },
            "EndDateTime": {
                "DateTime": "2015-01-05T20:30:00.0000000",
                "TimeZone": "UTC"
            },
            "Location": {
                "DisplayName": "Mt. Adams"
            },
            "Type": "SeriesMaster",
            "Recurrence": {
                "Pattern": {
                    "Type": "RelativeMonthly",
                    "Interval": 2,
                    "Month": 0,
                    "DayOfMonth": 0,
                    "DaysOfWeek": [
                        "Monday"
                    ],
                    "FirstDayOfWeek": "Sunday",
                    "Index": "First"
                },
                "Range": {
                    "Type": "NoEnd",
                    "StartDate": "2015-01-05",
                    "EndDate": "0001-01-01",
                    "RecurrenceTimeZone": "tzone://Microsoft/Utc",
                    "NumberOfOccurrences": 0
                }
            },
            "IsOutOfDate": false,
            "Extensions@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages('AAMkADIyDREAAA%3D')/Extensions",
            "Extensions": [
                {
                    "@odata.type": "#Microsoft.OutlookServices.OpenTypeExtension",
                    "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Messages('AAMkADIyDREAAA=')/Extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
                    "Id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
                    "ExtensionName": "Com.Contoso.Referral",
                    "CompanyName": "Wingtip Toys",
                    "DealValue@odata.type": "#Int64",
                    "DealValue": 500300,
                    "ExpirationDate": "2015-12-03T10:00:00.000Z"
                }
            ],
            "Event@odata.associationLink": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Events('AAMkADIyAAAAABrdAAA=')/$ref",
            "Event@odata.navigationLink": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Events('AAMkADIyAAAAABrdAAA=')"
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Messages('AAMkADIyAHVAAA=')",
            "@odata.etag": "W/\"CQAAABYAAACGYzsRv+OAR5zyXf6CQkRrAAADJ6aq\"",
            "Id": "AAMkADIyAHVAAA=",
            "CreatedDateTime": "2016-01-06T02:20:02Z",
            "LastModifiedDateTime": "2016-01-13T02:24:50Z",
            "ChangeKey": "CQAAABYAAACGYzsRv+OAR5zyXf6CQkRrAAADJ6aq",
            "Categories": [
            ],
            "ReceivedDateTime": "2016-01-06T02:20:02Z",
            "SentDateTime": "2016-01-06T02:20:01Z",
            "HasAttachments": false,
            "InternetMessageId": "<CY1PR19MB0032531C620A46068FDDD45DE3F40@CY1PR19MB0032.namprd19.prod.outlook.com>",
            "Subject": "International Launch Planning for XT2000",
            "Body": {
                "ContentType": "HTML",
                "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\nWe will be ready to ship XT 2000 on 10/1, how's the International launch plan going?<br>\r\n<div style=\"display:inline-block\">\r\n<table border=\"0\" cellspacing=\"0\" style=\"background-color:#F4F4F4\">\r\n<tbody>\r\n<tr>\r\n<td style=\"padding:20px; font-size:12px; color:#666666\">You're receiving this message because you're a subscribed member of the Engineering group.<br>\r\n<a href=\"https://outlook.office.com/owa/engineering@adatumltd.onmicrosoft.com/groupsubscription.ashx?realm=adatumltd.onmicrosoft.com&amp;action=conversations&amp;source=EscalatedMessage\">View group conversations</a> |\r\n<a href=\"https://adatumltd.sharepoint.com/_layouts/groupstatus.aspx?id=dbcbe107-6244-40ba-b0f1-1c46ad35435d&amp;target=documents\">\r\nView group files</a> | <a id=\"BD5134C6-8D33-4ABA-A0C4-08581FDF89DB\" href=\"https://outlook.office.com/owa/engineering@adatumltd.onmicrosoft.com/groupsubscription.ashx?realm=adatumltd.onmicrosoft.com&amp;action=unsubscribe&amp;source=EscalatedMessage\">\r\nUnsubscribe</a></td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</div>\r\n</body>\r\n</html>\r\n"
            },
            "BodyPreview": "We will be ready to ship XT 2000 on 10/1, how's the International launch plan going?\r\nYou're receiving this message because you're a subscribed member of the Engineering group.\r\nView group conversations | View group files | Unsubscribe",
            "Importance": "Normal",
            "ParentFolderId": "AAMkADIyAAAEMAAA=",
            "Sender": {
                "EmailAddress": {
                    "Name": "Engineering",
                    "Address": "engineering@adatumltd.onmicrosoft.com"
                }
            },
            "From": {
                "EmailAddress": {
                    "Name": "Garret Vargas",
                    "Address": "GarretV@adatumltd.onmicrosoft.com"
                }
            },
            "ToRecipients": [
                {
                    "EmailAddress": {
                        "Name": "Engineering",
                        "Address": "engineering@adatumltd.onmicrosoft.com"
                    }
                }
            ],
            "CcRecipients": [
            ],
            "BccRecipients": [
            ],
            "ReplyTo": [
            ],
            "ConversationId": "AAQkADIyLESZnSPc=",
            "IsDeliveryReceiptRequested": null,
            "IsReadReceiptRequested": false,
            "IsRead": false,
            "IsDraft": false,
            "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkADIyAHVAAA%3D&exvsurl=1&viewmodel=ReadMessageItem",
            "InferenceClassification": "Focused",
            "UnsubscribeData": [
            ],
            "UnsubscribeEnabled": false,
            "Extensions@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages('AAMkADIyAHVAAA%3D')/Extensions",
            "Extensions": [
                {
                    "@odata.type": "#Microsoft.OutlookServices.OpenTypeExtension",
                    "@odata.id": "https://outlook.office.com/api/beta/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Messages('AAMkADIyAHVAAA=')/Extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
                    "Id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
                    "ExtensionName": "Com.Contoso.Referral",
                    "CompanyName": "Wingtip Toys",
                    "DealValue@odata.type": "#Int64",
                    "DealValue": 500050,
                    "ExpirationDate": "2015-12-03T10:00:00.000Z"
                }
            ]
        }
    ]
} 

Hinzufügen oder Ändern von Daten in einer Erweiterung

Aktualisieren Sie eine Erweiterung mit den Eigenschaften im Anforderungstext:

  • Wenn eine Eigenschaft im Anforderungsheader mit dem Name einer vorhandenen Eigenschaft in der Erweiterung übereinstimmt, werden die Daten in die Erweiterung aktualisiert.
  • Andernfalls werden die Eigenschaft und die entsprechenden Daten zur Erweiterung hinzugefügt.

Die Erweiterung befindet sich in einer Ressource, die eine Nachricht, ein Kalenderereignis oder ein Kontakt in Office 365 oder Outlook.com sein kann. Sie kann über Name oder ID referenziert werden und gibt in beiden Fällen die gleiche Antwort zurück. Die Daten in der JSON-Nutzlast können primitive Typen oder Arrays von primitiven Typen sein.

PATCH https://outlook.office.com/api/beta/me/messages('{message_id}')/extensions('{extensionId}')
PATCH https://outlook.office.com/api/beta/me/events('{event_id}')/extensions('{extensionId}')
PATCH https://outlook.office.com/api/beta/me/contacts('{contact_id}')/extensions('{extensionId}')

Minimal benötigter Bereich

Einer der folgenden Lese- / Schreibbereiche für die Zielressource:

Parameter Typ Beschreibung
URL-Parameter
Erweiterungs-ID Zeichenfolge Dies kann ein Erweiterungsname sein, der ein unter allen Erweiterungen einer Ressourceninstanz eindeutiger Textbezeichner ist, oder ein vollqualifizierter Name, der den Erweiterungstyp und die eindeutige Textkennung verkettet. Der vollqualifizierte Name wird in der Id-Eigenschaft zurückgegeben, wenn Sie die Erweiterung erstellen. Erforderlich.
Textparameter
Erweiterungsname Zeichenfolge Eine eindeutige Textidentifizierung für eine Erweiterung. Erforderlich.

Beispielanfrage

Jedes der beiden Beispiele in diesem Abschnitt verwendet die Erweiterung im GET-Erweiterungsbeispiel oben. Das erste referenziert die Erweiterung über den Namen, das zweite über die ID. Ihre Anforderungs- und Antworttexte sind die gleichen.

Jedes Beispiel aktualisiert die Erweiterung oben mit:

  • Durch Ändern des CompanyName von Wingtip Toys zu Wingtip Toys (USA)
  • Durch Ändern des DealValue von 500050 zu 500100
  • Durch Hinzufügen neuer Daten als die benutzerdefinierte -Eigenschaft Updated

Dieses Beispiel referenziert die Erweiterung über ihren Namen:

PATCH https://outlook.office.com/api/beta/me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/Extensions('Com.Contoso.Referral')

Content-Type: application/json

{
    "@odata.type": "Microsoft.OutlookServices.OpenTypeExtension",
    "ExtensionName": "Com.Contoso.Referral",
    "CompanyName": "Wingtip Toys (USA)",
    "DealValue": "500100",
    "ExpirationDate": "2015-12-03T10:00:00.000Z",
    "Updated": "2015-10-29T11:00:00.000Z"
} 

Dieses Beispiel referenziert die Erweiterung über ihre ID (vollqualifizierter Name):

PATCH https://outlook.office.com/api/beta/me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/Extensions('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')

Content-Type: application/json

{
    "@odata.type": "Microsoft.OutlookServices.OpenTypeExtension",
    "ExtensionName": "Com.Contoso.Referral",
    "CompanyName": "Wingtip Toys (USA)",
    "DealValue": "500100",
    "ExpirationDate": "2015-12-03T10:00:00.000Z",
    "Updated": "2015-10-29T11:00:00.000Z"
} 

Beispielantwort

Eine erfolgreiche Antwort wird durch einen HTTP 200 OK Antwortcode und die aktualisierte Erweiterung im Antworttext angezeigt.

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/Extensions/$entity",
    "@odata.type": "#Microsoft.OutlookServices.OpenTypeExtension",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfc984d-b826-40d7-b48b-57002df85e00@1717f226-49d1-4d0c-9d74-709fad6677b4')/Messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions
('Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral')",
    "Id": "Microsoft.OutlookServices.OpenTypeExtension.Com.Contoso.Referral",
    "ExtensionName": "Com.Contoso.Referral",
    "CompanyName": "Wingtip Toys (USA)",
    "DealValue": 500100,
    "ExpirationDate": "2015-12-03T10:00:00Z",
    "Updated": "2015-10-29T11:00:00.000Z"
}

Löschen einer Erweiterung

Löschen Sie eine Erweiterung aus der angegebenen Instanz einer Ressource. Die Ressource kann eine Nachricht, ein Kalenderereignis oder ein Kontakt in Office 365 oder Outlook.com sein.

Um eine Erweiterung in einer Instanz jeder der unterstützten Ressourcen zu löschen:

DELETE https://outlook.office.com/api/beta/me/messages('{message_id}')/extensions('{extension_name}')
DELETE https://outlook.office.com/api/beta/me/events('{event_id}')/extensions('{extension_name}')
DELETE https://outlook.office.com/api/beta/me/contacts('{contact_id}')/extensions('{extension_name}')

Minimal benötigter Bereich

Einer der folgenden Lese- / Schreibbereiche für die Zielressource:

Parameter Typ Beschreibung
URL-Parameter
extension_name Zeichenfolge Eine eindeutige Textidentifizierung für eine Erweiterung. Erforderlich.

Beispielanfrage

Das folgende Beispiel referenziert eine Erweiterung über ihren Namen und löscht die Erweiterung in der angegebenen Nachricht.

DELETE https://outlook.office.com/api/beta/me/messages('AAMkAGE1M2IyNGNmLTI5MTktNDUyZi1iOTVl===')/extensions('Com.Contoso.Referral')

Beispielantwort

Eine erfolgreiche Antwort wird mit einemHTTP 204 No ContentAntwortcode angegeben.

Erweiterungsentitäten

Erweiterung

Typ: Microsoft.OutlookServices.Entity

Eine abstrakte Entität mit der Entität Entität als Basistyp.

OpenTypeExtension

Typ: Microsoft.OutlookServices.Erweiterung

Ein abstrakter, offener OData v4-Typ, der die dynamische Angabe von Eigenschaften und Daten in einer JSON-Nutzlast unterstützt, um eine Instanz eines Entitätstyps zu aktualisieren.

Eigenschaft Typ Beschreibung Beschreibbar? Filterbar?
Erweiterungsname Zeichenfolge Eindeutiger Erweiterungsname. Verwenden Sie ein umgekehrtes Domänennamen-System, das auf Ihrer eigenen Domain basiert, z.B. Com.Contoso.Contact. Ja Nein

Nächste Schritte

Egal, ob Sie bereit sind, eine App zu erstellen oder einfach nur mehr darüber erfahren möchten, wir haben alles im Griff.

Oder erfahren Sie mehr über die Verwendung der Office 365-Plattform: