Freigeben über


Drittanbieter-Cloudspeicher-App

Microsoft Teams bietet die Flexibilität, den Standardspeicher von OneDrive und SharePoint in eine bevorzugte Drittanbieter-Cloudspeicheranbieter-App zu ändern. Wenn eine Datei in den Nachrichtenerstellungsbereich eines Teams-Chats oder -Kanals gezogen wird, können Sie das Speichern der Datei in einem Cloudspeicher eines Drittanbieters mithilfe der Microsoft Teams JavaScript-Clientbibliothek (TeamsJS) zulassen.

Voraussetzungen

Für die Teams-App zur Unterstützung des Cloudspeichers von Drittanbietern für drag-dropped-Dateien:

  • Verwenden Sie die neueste Version des TeamsJS SDK.

  • Das App-Manifest (früher Teams-App-Manifest genannt) muss mit der App-ID der Speicher-App des Drittanbieters konfiguriert werden. Suchen Sie nach der Eigenschaft namens, defaultFilesUploadAppId und konfigurieren Sie die App-ID.

    Hinweis

    Verwenden Sie nur eine einfache Zeichenfolge und keine umgekehrten Kommas.

    Alternativ können Administratoren auch die Cloudspeicher-App-ID eines Drittanbieters konfigurieren. Weitere Informationen finden Sie unter Administratoreinstellungen für das Ziehen von Dateien in den Drittanbieterspeicher.

  • Das App-Manifest muss die erste Aktion als aufweisen Upload. Durch diese Aktion wird die App automatisch im Uploadmodus geöffnet, wenn Dateien in den Nachrichtenerstellungsbereich gezogen werden.

    Das folgende Codebeispiel zeigt die erste Aktion, die als Upload unter composeExtensionshinzugefügt wurde:

    {
      "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.9/MicrosoftTeams.schema.json",
      "manifestVersion": "1.9",
      "version": "2.3.1",
      "id": "id",
      "developer": {
        "name": "Microsoft",
        "websiteUrl": "https://dev.botframework.com",
        "privacyUrl": "https://privacy.microsoft.com",
        "termsOfUseUrl": "https://www.microsoft.com/en-us/legal/intellectualproperty/copyright/default.aspx"
      },
      "name": {
        "short": "Third-Party Cloud Storage",
        "full": "Third-Party Cloud Storage Integration"
      },
      "description": {
        "short": "Enable drag-and-drop file uploads to third-party cloud storage.",
        "full": "This app enables seamless integration with third-party cloud storage providers for files dragged and dropped in Teams chats or channels. It uses the Microsoft Teams JavaScript SDK's thirdPartyCloudStorage module to fetch and upload files efficiently."
      },
      "icons": {
        "outline": "outline.png",
        "color": "color.png"
      },
      "accentColor": "#FFFFFF",
      "bots": [
        {
          "botId": "${{AAD_APP_CLIENT_ID}}",
          "needsChannelSelector": false,
          "isNotificationOnly": false,
          "supportsCalling": false,
          "supportsVideo": false,
          "supportsFiles": false,
          "scopes": [
            "team",
            "personal",
            "groupChat"
          ]
        }
      ],
      "composeExtensions": [
        {
          "botId": "botid",
          "canUpdateConfiguration": false,
          "commands": [
            {
              "id": "getUpload",
              "type": "action",
              "title": "Create Card",
              "description": "Example of creating a Card",
              "initialRun": false,
              "fetchTask": true,
              "context": [
                "compose"
              ],
              "parameters": [
                {
                  "name": "param",
                  "title": "param",
                  "description": ""
                }
              ]
            }
          ]
        }
      ],
      "permissions": [
        "identity"
      ],
      "validDomains": [
        "*.testApp.com"
      ]
    }
    

Ziehen von Dateien in den Cloudspeicher von Drittanbietern

Wenn Sie möchten, dass Ihre Teams-App über einen Drittanbieterspeicher Ihrer Wahl verfügt, müssen Sie die getDragAndDropFiles API von thirdPartyCloudStorage im TeamsJS SDK verwenden. Diese API ermöglicht das Hochladen von Dateien aus dem Nachrichtenerstellungsbereich eines Teams-Chats oder -Kanals in die Speicher-App eines Drittanbieters.

Hinweis

Die thirdPartyCloudStorage API wird nur in Szenarien verwendet, in denen die Dateien per Drag-Drop abgelegt werden. Sie wird nicht verwendet, wenn die Dateien mithilfe des Plussymbols in der Symbolleiste zum Verfassen von Nachrichten hinzugefügt werden.

Führen Sie die folgenden Schritte aus, um Cloudspeicher von Drittanbietern für die drag-dropped-Dateien in Teams zu implementieren:

  1. Stellen Sie sicher, dass die Eigenschaft defaultFilesUploadAppId mit der Speicher-App-ID des Drittanbieters konfiguriert ist und die erste Aktion als im App-Manifest festgelegt Upload ist.

  2. Erstellen Sie die eindeutige ID mit den folgenden Parametern aus dem Anwendungskontext:

    • const uniqueIdForChats = replyToId + id (d. b threadId. ).

      Alle oben genannten Werte sind im Anwendungskontext vorhanden. Wenn "commandContext" = "thirdParty", hilft es der Cloudspeicher-App von Drittanbietern, festzustellen, ob die App programmgesteuert geöffnet wird. Wenn replyToId nicht im Kontext vorhanden ist, lautet ""+threadIddie eindeutige ID .

      Die folgende Abbildung zeigt das Beispiel des Anwendungskontexts mit hervorgehobenen Werten zum Erstellen der eindeutigen ID:

      Screenshot: Beispielkontext, in dem die beiden Werte zum Erstellen der eindeutigen ID vorhanden sind

  3. Verwenden Sie die getDragAndDropFiles API aus dem thirdPartyCloudStorage im TeamsJS SDK für die Speicher-App eines Drittanbieters, um die drag-dropped-Dateien abzurufen.

  4. Eine Rückruffunktion ist implementiert, um die Dateien zu empfangen und zu verarbeiten.

    Rückruf: (files: FilesFor3PStorage[], error?: SdkError): void;**

    Das folgende Codebeispiel zeigt die Rückruffunktion:

    microsoftTeams.initialize(() => {
      microsoftTeams.getContext((context) => {
        console.log(`Context is ${JSON.stringify(context)}`);
      });
    
      let inputthreadId = "19:8c24b2ac42924ca3b8e220b3a48d8f9a@thread.v2";
      let replyChainIdforChats = "";
      const uniqueIdForChats = replyChainIdforChats + inputthreadId;
      let mediaData = [];
    
      microsoftTeams.thirdPartyCloudStorage.getDragAndDropFiles(inputthreadId, (medias, err) => {
        document.getElementById("hubState").innerText = JSON.stringify(inputthreadId);
        console.log("inside getDragAndDropFiles");
    
        if (err) {
          console.log("error while calling getDragAndDropFiles API");
          document.getElementById("getDragAndDropFiles").innerText = JSON.stringify(err);
          console.log(err);
          return;
        }
    
        console.log("no error");
        const media = medias;
        console.log(media);
    
        medias.forEach((media) => {
            console.log(`Name: ${media.name}`);
            console.log(`Type: ${media.type}`);
            console.log(`Size: ${media.size}`);
    
            mediaData.push({
                name: media.name,
                type: media.type,
                size: media.size,
            });
    
            // Example 1: Bind mediaData to HTML (e.g., create a table row for each file)
            // Example 2: Add blob storage functionality for downloading the file
        });
      });
    });
    
  5. Die Drittanbieter-Cloudspeicher-App lädt dann die empfangenen Dateien in den Cloudspeicher eines Drittanbieters hoch.

So werden die Dateien in die Cloudspeicher-App eines Drittanbieters hochgeladen:

  1. Wenn die Dateien per Drag-Drop im Nachrichtenerstellungsbereich abgelegt werden, werden die Dateien vorübergehend im Teams-Cache gespeichert.

  2. Die Cloudspeicher-App eines Drittanbieters ruft die getDragAndDropFiles API mithilfe von uniqueID auf, um die Dateien abzurufen, die per Drag-Drop abgelegt wurden.

  3. Die thirdPartyCloudStorage API gibt die Dateien zurück, die per Drag-Drop abgelegt wurden.

  4. Die Dateien werden in der Cloudspeicher-App eines Drittanbieters über die Rückruffunktion empfangen.

  5. Die Cloudspeicher-App eines Drittanbieters lädt die Dateien dann in ihren Speicher hoch.

Codebeispiel

Beispielname Beschreibung Node.js .NET Python
Cloudspeicher von Drittanbietern Veranschaulicht die Implementierung einer Drittanbieter-Cloudspeicher-App für Dateien, die per Drag-Drop im Bereich zum Verfassen von Nachrichten abgelegt werden. View View Anzeigen

Siehe auch

App-Manifest