Kanal erstellen

Namespace: microsoft.graph

Wichtig

Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.

Erstellen Sie einen neuen Kanal in einem Team, wie im Anforderungstext angegeben. Wenn Sie einen Kanal erstellen, beträgt die maximale Länge des Kanals displayName 50 Zeichen. Dieser Anzeigename wird dem Benutzer in Microsoft Teams angezeigt.

Sie können maximal 200 Mitglieder hinzufügen, wenn Sie einen privaten Kanal erstellen.

Hinweis

  • Einige Sonderzeichen im Kanalnamen bewirken, dass die Get filesFolder-API einen Fehler zurückgibt. Einzelheiten hierzu finden Sie unter Bekannte Probleme.
  • Wenn Sie einen privaten/freigegebenen Kanal erstellen, kann die SharePoint-Website möglicherweise nicht bereitgestellt werden. Wenn die Website nach fünf Minuten nicht bereitgestellt werden kann, verwenden Sie die GET filesFolder-API , um die Bereitstellung auszulösen.

Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.

Globaler Dienst US Government L4 US Government L5 (DOD) China, betrieben von 21Vianet

Berechtigungen

Wählen Sie für diese API die Als am wenigsten privilegierten Berechtigungen gekennzeichneten Berechtigungen aus. Verwenden Sie nur dann eine Berechtigung mit höheren Berechtigungen , wenn dies für Ihre App erforderlich ist. Ausführliche Informationen zu delegierten Berechtigungen und Anwendungsberechtigungen finden Sie unter Berechtigungstypen. Weitere Informationen zu diesen Berechtigungen finden Sie in der Berechtigungsreferenz.

Diese API unterstützt Administratorberechtigungen. Globale Administratoren und Microsoft Teams-Dienstadministratoren können auf Teams zugreifen, in denen sie kein Mitglied sind.

Berechtigungstyp Berechtigungen mit den geringsten Berechtigungen Berechtigungen mit höheren Berechtigungen
Delegiert (Geschäfts-, Schul- oder Unikonto) Channel.Create Directory.ReadWrite.All, Group.ReadWrite.All
Delegiert (persönliches Microsoft-Konto) Nicht unterstützt Nicht unterstützt
Anwendung Channel.Create.Group Channel.Create, Directory.ReadWrite.All, Group.ReadWrite.All, Teamwork.Migrate.All

Hinweis

  • Die Channel.Create.Group-Berechtigung verwendet die ressourcenspezifische Zustimmung.
  • Die Berechtigungen Group.ReadWrite.All und Directory.ReadWrite.All werden nur aus Gründen der Abwärtskompatibilität unterstützt. Es wird empfohlen, Ihre Lösungen zu aktualisieren, sodass sie eine alternative Berechtigung verwenden, die in der vorherigen Tabelle aufgeführt ist, und diese Berechtigungen in Zukunft nicht mehr verwenden.

Hinweis: In Zukunft kann Microsoft verlangen, dass Sie oder Ihre Kunden zusätzliche Gebühren basierend auf der Menge der daten zahlen, die mithilfe von Teamwork.Migrate.All und/oder Migrations-APIs importiert wurden.

HTTP-Anforderung

POST /teams/{team-id}/channels

Anforderungsheader

Kopfzeile Wert
Authorization Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung.
Content-Type application/json. Erforderlich.

Anforderungstext

Geben Sie im Anforderungstext eine JSON-Darstellung eines Kanalobjekts an.

Antwort

Bei erfolgreicher Ausführung gibt die Methode den 201 Created Antwortcode und ein Kanalobjekt im Antworttext für einen Kanal mit dem membershipType-Wert oder privatezurückstandard. Für einen Kanal mit dem membershipType-Wert gibt shareddiese Methode einen 202 Accepted Antwortcode und einen Link zu teamsAsyncOperation zurück.

Wenn die Anforderung nicht erfolgreich ist, gibt diese Methode einen 400 Bad Request Antwortcode zurück. Die Folgenden sind häufige Ursachen für diese Antwort:

  • createdDateTime ist in der Zukunft festgelegt.
  • createdDateTime ist ordnungsgemäß angegeben, aber das attribut channelCreationMode instance fehlt oder ist auf einen ungültigen Wert festgelegt.

Beispiele

Beispiel 1: Erstellen eines Standardkanals

Anforderung

Das folgende Beispiel zeigt eine Anforderung zum Erstellen eines Standardkanals.

POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
  "displayName": "Architecture Discussion",
  "description": "This channel is where we debate all future architecture plans",
  "membershipType": "standard"
}

Antwort

Das folgende Beispiel zeigt die Antwort.

Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.

HTTP/1.1 201 Created
Content-type: application/json

{
  "id": "19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2",
  "displayName": "Architecture Discussion",
  "description": "This channel is where we debate all future architecture plans"
}

Beispiel 2: Erstellen eines privaten Kanals im Namen des Benutzers

Anforderung

Das folgende Beispiel zeigt eine Anforderung zum Erstellen eines privaten Kanals und Hinzufügen eines Benutzers als Teambesitzer.

POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
  "@odata.type": "#Microsoft.Graph.channel",
  "membershipType": "private",
  "displayName": "My First Private Channel",
  "description": "This is my first private channels",
  "members":
     [
        {
           "@odata.type":"#microsoft.graph.aadUserConversationMember",
           "user@odata.bind":"https://graph.microsoft.com/beta/users('62855810-484b-4823-9e01-60667f8b12ae')",
           "roles":["owner"]
        }
     ]
}

Hinweis: Um dem Kanal ein Gastkonto hinzuzufügen, verwenden Sie für die Eigenschaft roles den Wert guest.

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels/$entity",
    "id": "19:33b76eea88574bd1969dca37e2b7a819@thread.skype",
    "displayName": "My First Private Channel",
    "description": "This is my first private channels",
    "isFavoriteByDefault": null,
    "email": "",
    "webUrl": "https://teams.microsoft.com/l/channel/19:33b76eea88574bd1969dca37e2b7a819@thread.skype/My%20First%20Private%20Channel?groupId=57fb72d0-d811-46f4-8947-305e6072eaa5&tenantId=0fddfdc5-f319-491f-a514-be1bc1bf9ddc",
    "membershipType": "private"
}

Beispiel 3: Erstellen eines Kanals im Migrationsmodus

Anforderung

Das folgende Beispiel zeigt, wie Sie einen Kanal zum Importieren von Nachrichten erstellen.

POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-Type: application/json

{
  "@microsoft.graph.channelCreationMode": "migration",
  "displayName": "Import_150958_99z",
  "description": "Import_150958_99z",
  "createdDateTime": "2020-03-14T11:22:17.067Z"
}

Antwort

Das folgende Beispiel zeigt die Antwort. Der Content-Location Header in der Antwort gibt den Pfad zu dem Kanal an, der bereitgestellt wird. Nach der Bereitstellung kann dieser Kanal zum Importieren von Nachrichten verwendet werden.

HTTP/1.1 201 Created
Location: /teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels('19:4b6bed8d24574f6a9e436813cb2617d8@thread.tacv2')

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels/$entity",
    "id": "19:987c7a9fbe6447ccb3ea31bcded5c75c@thread.tacv2",
    "createdDateTime": null,
    "displayName": "Import_150958_99z",
    "description": "Import_150958_99z",
    "isFavoriteByDefault": null,
    "email": null,
    "webUrl": null,
    "membershipType": null,
    "moderationSettings": null
}

Beispiel 4: Erstellen eines Standardkanals mit Moderationseinstellungen

Anforderung

Das folgende Beispiel zeigt eine Anforderung zum Erstellen eines Standardkanals mit Moderationseinstellungen. Dieser Vorgang kann nur für einen Standardkanal ausgeführt werden.

POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
    "displayName": "TestChannelModeration",
    "description": "Test channel moderation.",
    "membershipType": "standard",
    "moderationSettings": {
        "userNewMessageRestriction": "everyoneExceptGuests",
        "replyRestriction": "everyone",
        "allowNewMessageFromBots": true,
        "allowNewMessageFromConnectors": true
    }
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels/$entity",
    "id": "19:12b76eea88574bd1969dca37e2b7a819@thread.skype",
    "displayName": "My First Private Channel",
    "description": "This is my first private channels",
    "isFavoriteByDefault": null,
    "email": "",
    "webUrl": "https://teams.microsoft.com/l/channel/19:12b76eea88574bd1969dca37e2b7a819@thread.skype/My%20First%20Private%20Channel?groupId=57fb72d0-d811-46f4-8947-305e6072eaa5&tenantId=0fddfdc5-f319-491f-a514-be1bc1bf9ddc",
    "membershipType": "standard"
}

Beispiel 5: Erstellen eines privaten Kanals im Namen des Benutzers mithilfe des Benutzerprinzipalnamens

Anforderung

Das folgende Beispiel zeigt eine Anforderung zum Erstellen eines privaten Kanals und Hinzufügen eines Benutzers als Teambesitzer.

POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
  "@odata.type": "#Microsoft.Graph.channel",
  "membershipType": "private",
  "displayName": "My First Private Channel",
  "description": "This is my first private channels",
  "members":
     [
        {
           "@odata.type":"#microsoft.graph.aadUserConversationMember",
           "user@odata.bind":"https://graph.microsoft.com/beta/users('jacob@contoso.com')",
           "roles":["owner"]
        }
     ]
}

Hinweis: Um dem Kanal ein Gastkonto hinzuzufügen, verwenden Sie für die Eigenschaft roles den Wert guest.

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 0

{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('57fb72d0-d811-46f4-8947-305e6072eaa5')/channels/$entity",
    "id": "19:33b76eea88574bd1969dca37e2b7a819@thread.skype",
    "displayName": "My First Private Channel",
    "description": "This is my first private channels",
    "isFavoriteByDefault": null,
    "email": "",
    "webUrl": "https://teams.microsoft.com/l/channel/19:33b76eea88574bd1969dca37e2b7a819@thread.skype/My%20First%20Private%20Channel?groupId=57fb72d0-d811-46f4-8947-305e6072eaa5&tenantId=0fddfdc5-f319-491f-a514-be1bc1bf9ddc",
    "membershipType": "private"
}

Beispiel 6: Erstellen eines freigegebenen Kanals im Namen eines Benutzers

Anforderung

Das folgende Beispiel zeigt, wie Sie einen freigegebenen Kanal erstellen.

POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
  "displayName": "My First Shared Channel",
  "description": "This is my first shared channel",
  "membershipType": "shared",
  "members": [
    {
      "@odata.type": "#microsoft.graph.aadUserConversationMember",
      "user@odata.bind": "https://graph.microsoft.com/beta/users('7640023f-fe43-gv3f-9gg4-84a9efe4acd6')",
      "roles": [
        "owner"
      ]
    }
  ]
}

Hinweis: Um dem Kanal ein Gastkonto hinzuzufügen, verwenden Sie für die Eigenschaft roles den Wert guest.

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Location: /teams/7640023f-fe43-4cc7-9bd3-84a9efe4acd6/operations/359d75f6-2bb8-4785-ab2d-377bf3d573fa
Content-Length: 0

Beispiel 7: Erstellen eines freigegebenen Kanals, der für das Hostteam freigegeben wurde

Anforderung

Das folgende Beispiel zeigt, wie Sie einen freigegebenen Kanal erstellen, der für das Hostteam freigegeben ist.

POST https://graph.microsoft.com/beta/teams/57fb72d0-d811-46f4-8947-305e6072eaa5/channels
Content-type: application/json

{
  "displayName": "My First Shared Channel",
  "description": "This is my first shared channel",
  "membershipType": "shared",
  "members": [
    {
      "@odata.type": "#microsoft.graph.aadUserConversationMember",
      "user@odata.bind": "https://graph.microsoft.com/beta/users('7640023f-fe43-gv3f-9gg4-84a9efe4acd6')",
      "roles": [
        "owner"
      ]
    }
  ],
  "sharedWithTeams":[
    {
      "id": "57fb72d0-d811-46f4-8947-305e6072eaa5"
    }
  ]
}

Antwort

Das folgende Beispiel zeigt die Antwort.

HTTP/1.1 202 Accepted
Content-Type: application/json
Content-Location: /teams/7640023f-fe43-4cc7-9bd3-84a9efe4acd6/operations/359d75f6-2bb8-4785-ab2d-377bf3d573fa
Content-Length: 0