Aplicação de armazenamento na cloud de terceiros
O Microsoft Teams fornece a flexibilidade para alterar o armazenamento predefinido do OneDrive e do SharePoint para uma aplicação de fornecedor de armazenamento na cloud preferencial de terceiros. Quando um ficheiro é arrastado para a área de composição de mensagens de um chat ou canal do Teams, pode permitir que o ficheiro seja armazenado num armazenamento na nuvem de terceiros com a biblioteca de cliente JavaScript (TeamsJS) do Microsoft Teams.
Pré-requisitos
Para a aplicação Teams suportar o armazenamento na cloud de terceiros para ficheiros removidos de arrastar:
Utilize a versão mais recente do SDK do TeamsJS.
O manifesto da aplicação (anteriormente denominado manifesto de aplicação do Teams) tem de ser configurado com o ID da aplicação de armazenamento de terceiros. Procure a propriedade com o nome
defaultFilesUploadAppId
e configure o ID da aplicação.Observação
Utilize apenas cadeia simples e não utilize vírgulas invertidas.
Em alternativa, os administradores também podem configurar o ID da aplicação de armazenamento na cloud de terceiros. Para obter mais informações, veja definições de administração para arrastar/largar ficheiros para armazenamento de terceiros.
O manifesto da aplicação tem de ter a primeira ação como
Upload
. Esta ação abre automaticamente a aplicação no modo de carregamento quando os ficheiros são arrastados para a área de composição de mensagens.O exemplo de código seguinte mostra a primeira ação adicionada como
Upload
emcomposeExtensions
:{ "$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" ] }
Arrastar e largar ficheiros para o armazenamento na cloud de terceiros
Se quiser que a sua aplicação teams tenha um armazenamento de terceiros da sua preferência, tem de utilizar a getDragAndDropFiles
API do no SDK do thirdPartyCloudStorage
TeamsJS. Esta API permite carregar ficheiros a partir da área de composição de mensagens de um chat ou canal do Teams para uma aplicação de armazenamento de terceiros.
Observação
A thirdPartyCloudStorage
API só é utilizada em cenários em que os ficheiros são removidos. Não é utilizado quando os ficheiros são adicionados com o ícone de adição na barra de ferramentas de composição de mensagens.
Para implementar o armazenamento na cloud de terceiros para os ficheiros arrastados no Teams, siga estes passos:
Certifique-se de que a propriedade
defaultFilesUploadAppId
está configurada com o ID da aplicação de armazenamento de terceiros e que a primeira ação está definida comoUpload
no manifesto da aplicação.Crie o ID exclusivo com os seguintes parâmetros no contexto da aplicação:
const uniqueIdForChats
=replyToId
+id
(ou seja,threadId
).Todos os valores acima estão presentes no contexto da aplicação. Se
"commandContext" = "thirdParty"
, ajuda a aplicação de armazenamento na cloud de terceiros a determinar que a aplicação é aberta programaticamente. SereplyToId
não estiver presente no contexto, o ID exclusivo é""+threadId
.A imagem seguinte mostra o exemplo do contexto da aplicação com os valores para criar o ID exclusivo realçado:
Utilize a
getDragAndDropFiles
API dothirdPartyCloudStorage
SDK no TeamsJS para a aplicação de armazenamento de terceiros para obter os ficheiros arrastados.É implementada uma função de chamada de retorno para receber e processar os ficheiros.
Chamada de retorno:
(files: FilesFor3PStorage[], error?: SdkError): void;**
O seguinte exemplo de código mostra a função de chamada de retorno:
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, a aplicação de armazenamento na cloud de terceiros carrega os ficheiros recebidos para o armazenamento na cloud de terceiros.
Eis como os ficheiros são carregados para uma aplicação de armazenamento na cloud de terceiros:
Quando os ficheiros são removidos na área de composição de mensagens, os ficheiros são temporariamente armazenados na cache do Teams.
A aplicação de armazenamento na cloud de terceiros chama a
getDragAndDropFiles
API com ouniqueID
para obter os ficheiros que foram removidos.A
thirdPartyCloudStorage
API devolve os ficheiros que foram removidos.Os ficheiros são recebidos na aplicação de armazenamento na cloud de terceiros através da função de chamada de retorno.
Em seguida, a aplicação de armazenamento na cloud de terceiros carrega os ficheiros para o respetivo armazenamento.
Exemplo de código
Nome do exemplo | Descrição | Node.js | .NET | Python |
---|---|---|---|---|
Armazenamento na cloud de terceiros | Demonstra como implementar uma aplicação de armazenamento na cloud de terceiros para ficheiros que são arrastados na área de composição de mensagens. | View | View | Exibir |