Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Microsoft Teams oferece a flexibilidade de alterar o armazenamento padrão do OneDrive e do SharePoint para um aplicativo provedor de armazenamento em nuvem de terceiros preferencial. Quando um arquivo é arrastado e solto na área de redação de mensagem de um chat ou canal do Teams, você pode permitir que o arquivo seja armazenado em um armazenamento em nuvem de terceiros usando a biblioteca de clientes JavaScript do Microsoft Teams (TeamsJS).
Pré-requisitos
Para que o aplicativo Teams dê suporte ao armazenamento em nuvem de terceiros para arrastar e soltar arquivos:
Use a versão mais recente do SDK do TeamsJS.
O manifesto do aplicativo (anteriormente chamado de manifesto do aplicativo Teams) deve ser configurado com a ID do aplicativo do aplicativo de armazenamento de terceiros. Pesquise a propriedade nomeada
defaultFilesUploadAppIde configure a ID do aplicativo.Observação
Use apenas cadeia de caracteres simples e não use vírgulas invertidas.
Como alternativa, os administradores também podem configurar a ID do aplicativo de armazenamento em nuvem de terceiros. Para obter mais informações, consulte configurações de administrador para arrastar e soltar arquivos no armazenamento de terceiros.
O manifesto do aplicativo deve ter a primeira ação como
Upload. Essa ação abre automaticamente o aplicativo no modo de carregamento quando os arquivos são arrastados e soltos na área de redação da mensagem.O exemplo de código a seguir mostra a primeira ação adicionada conforme
UploadabaixocomposeExtensions:{ "$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" ] }
Arraste e solte arquivos para o armazenamento em nuvem de terceiros
Se você quiser que seu aplicativo Teams tenha um armazenamento de terceiros de sua preferência, deverá usar a getDragAndDropFiles API do SDK do thirdPartyCloudStorage TeamsJS. Essa API permite o upload de arquivos da área de redação de mensagem de um chat ou canal do Teams para o aplicativo de armazenamento de terceiros.
Observação
A thirdPartyCloudStorage API é usada somente em cenários quando os arquivos são arrastados e soltos. Ela não é usada quando os arquivos são adicionados usando o ícone de adição na barra de ferramentas de redação de mensagem.
Para implementar o armazenamento em nuvem de terceiros para os arquivos arrastados e soltos no Teams, siga estas etapas:
Verifique se a propriedade
defaultFilesUploadAppIdestá configurada com a ID do aplicativo de armazenamento de terceiros e se a primeira ação está definida comoUploadno manifesto do aplicativo.Crie a ID exclusiva usando os seguintes parâmetros no contexto do aplicativo:
const uniqueIdForChats=replyToId+id(isto é,threadId).Todos os valores acima estão presentes no contexto do aplicativo. Se
"commandContext" = "thirdParty", ajuda o aplicativo de armazenamento em nuvem de terceiros a determinar se o aplicativo foi aberto programaticamente. SereplyToIdnão estiver presente no contexto, a ID exclusiva será""+threadId.A imagem a seguir mostra o exemplo do contexto do aplicativo com os valores para criar a ID exclusiva realçada:
Use a
getDragAndDropFilesAPI dothirdPartyCloudStorageSDK no TeamsJS para o aplicativo de armazenamento de terceiros buscar os arquivos arrastados.Uma função de retorno de chamada é implementada para receber e manipular os arquivos.
Retorno de chamada:
(files: FilesFor3PStorage[], error?: SdkError): void;**O exemplo de código a seguir mostra a função de retorno de chamada:
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 }); }); });Em seguida, o aplicativo de armazenamento em nuvem de terceiros carrega os arquivos recebidos para o armazenamento em nuvem de terceiros.
Veja como os arquivos são carregados para o aplicativo de armazenamento em nuvem de terceiros:
Quando os arquivos são arrastados e soltos na área de redação da mensagem, os arquivos são armazenados temporariamente no cache do Teams.
O aplicativo de armazenamento em nuvem de terceiros chama a
getDragAndDropFilesAPI usando auniqueIDpara buscar os arquivos que foram arrastados e soltos.A
thirdPartyCloudStorageAPI retorna os arquivos que foram arrastados e soltos.Os arquivos são recebidos no aplicativo de armazenamento em nuvem de terceiros por meio da função de retorno de chamada.
Em seguida, o aplicativo de armazenamento em nuvem de terceiros carrega os arquivos no armazenamento.
Exemplo de código
| Nome do exemplo | Descrição | Node.js | .NET | Python |
|---|---|---|---|---|
| Armazenamento em nuvem de terceiros | Demonstra como implementar o aplicativo de armazenamento em nuvem de terceiros para arquivos que são arrastados e soltos na área de redação da mensagem. | View | View | Exibir |