Application de stockage cloud tierce
Microsoft Teams offre la possibilité de remplacer le stockage par défaut de OneDrive et SharePoint par une application de fournisseur de stockage cloud tierce préférée. Lorsqu’un fichier est glissé dans la zone de composition de message d’une conversation ou d’un canal Teams, vous pouvez autoriser le fichier à être stocké dans un stockage cloud tiers à l’aide de la bibliothèque de client JavaScript Microsoft Teams (TeamsJS).
Configuration requise
Pour que l’application Teams prend en charge le stockage cloud tiers pour les fichiers glisser-déplacer :
Utilisez la dernière version du Kit de développement logiciel (SDK) TeamsJS.
Le manifeste d’application (précédemment appelé manifeste d’application Teams) doit être configuré avec l’ID d’application de l’application de stockage tierce. Recherchez la propriété nommée
defaultFilesUploadAppId
et configurez l’ID d’application.Remarque
Utilisez une chaîne simple uniquement et n’utilisez pas de virgules inversées.
Les administrateurs peuvent également configurer l’ID d’application de stockage cloud tiers. Pour plus d’informations, consultez Paramètres d’administration pour le glisser-déposer de fichiers vers un stockage tiers.
La première action du manifeste de l’application doit être
Upload
. Cette action ouvre automatiquement l’application en mode de chargement lorsque des fichiers sont glissés dans la zone de composition des messages.L’exemple de code suivant montre la première action ajoutée sous
Upload
composeExtensions
:{ "$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" ] }
Glisser-déplacer des fichiers vers un stockage cloud tiers
Si vous souhaitez que votre application Teams dispose d’un stockage tiers de votre choix, vous devez utiliser l’API de thirdPartyCloudStorage
dans le getDragAndDropFiles
Kit de développement logiciel (SDK) TeamsJS. Cette API permet de charger des fichiers à partir de la zone de composition de messages d’une conversation ou d’un canal Teams vers une application de stockage tierce.
Remarque
L’API thirdPartyCloudStorage
est utilisée uniquement dans les scénarios où les fichiers sont glisser-déplacer. Il n’est pas utilisé lorsque les fichiers sont ajoutés à l’aide de l’icône plus dans la barre d’outils de rédaction de messages.
Pour implémenter un stockage cloud tiers pour les fichiers glisser-déplacer dans Teams, procédez comme suit :
Vérifiez que la propriété
defaultFilesUploadAppId
est configurée avec l’ID d’application de stockage tiers et que la première action est définie commeUpload
dans le manifeste de l’application.Créez l’ID unique à l’aide des paramètres suivants à partir du contexte d’application :
const uniqueIdForChats
=replyToId
+id
(autrement dit,threadId
).Toutes les valeurs ci-dessus sont présentes dans le contexte de l’application. Si
"commandContext" = "thirdParty"
la valeur est , il permet à l’application de stockage cloud tierce de déterminer que l’application est ouverte par programmation. SireplyToId
n’est pas présent dans le contexte, l’ID unique est""+threadId
.L’image suivante montre l’exemple de contexte d’application avec les valeurs permettant de créer l’ID unique mises en surbrillance :
Utilisez l’API
getDragAndDropFiles
duthirdPartyCloudStorage
sdk TeamsJS pour l’application de stockage tierce afin de récupérer les fichiers glissés.Une fonction de rappel est implémentée pour recevoir et gérer les fichiers.
Rappel:
(files: FilesFor3PStorage[], error?: SdkError): void;**
L’exemple de code suivant montre la fonction de rappel :
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 }); }); });
L’application de stockage cloud tierce charge ensuite les fichiers reçus dans le stockage cloud tiers.
Voici comment les fichiers sont chargés dans une application de stockage cloud tierce :
Lorsque les fichiers sont glissés dans la zone de composition des messages, les fichiers sont stockés temporairement dans le cache Teams.
L’application de stockage cloud tierce appelle l’API à l’aide
getDragAndDropFiles
deuniqueID
pour extraire les fichiers qui ont été glissés.L’API
thirdPartyCloudStorage
retourne les fichiers qui ont été glissés.Les fichiers sont reçus dans l’application de stockage cloud tierce via la fonction de rappel.
L’application de stockage cloud tierce charge ensuite les fichiers dans son stockage.
Exemple de code
Exemple de nom | Description | Node.js | .NET | Python |
---|---|---|---|---|
Stockage cloud tiers | Montre comment implémenter une application de stockage cloud tierce pour les fichiers qui sont glissés dans la zone de composition des messages. | View | View | View |