サード パーティのクラウド ストレージ アプリ
Microsoft Teamsでは、既定のストレージを OneDrive と SharePoint から優先サード パーティのクラウド ストレージ プロバイダー アプリに柔軟に変更できます。 Teams チャットまたはチャネルのメッセージ作成領域にファイルをドラッグ アンド ドロップすると、Microsoft Teams JavaScript クライアント ライブラリ (TeamsJS) を使用して、ファイルをサード パーティのクラウド ストレージに格納できます。
前提条件
Teams アプリで、ドラッグ アンド ドロップされたファイルのサード パーティ製クラウド ストレージをサポートする場合:
TeamsJS SDK の最新バージョンを使用します。
アプリ マニフェスト (以前は Teams アプリ マニフェストと呼ばれる) は、サード パーティのストレージ アプリのアプリ ID で構成する必要があります。
defaultFilesUploadAppId
という名前のプロパティを検索し、アプリ ID を構成します。注:
プレーン文字列のみを使用し、逆コンマを使用しないでください。
または、管理者はサード パーティのクラウド ストレージ アプリ ID を構成することもできます。 詳細については、「 サードパーティのストレージへのファイル のドラッグ ドロップの管理設定」を参照してください。
アプリ マニフェストには、
Upload
としての最初のアクションが必要です。 ファイルがメッセージ作成領域にドラッグ アンド ドロップされると、このアクションによってアプリがアップロード モードで自動的に開きます。次のコード サンプルは、
composeExtensions
の下にUpload
として追加された最初のアクションを示しています。{ "$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" ] }
ファイルをサードパーティのクラウド ストレージにドラッグ アンド ドロップする
Teams アプリにサード パーティ製のストレージを設定する場合は、TeamsJS SDK でthirdPartyCloudStorage
のgetDragAndDropFiles
API を使用する必要があります。 この API を使用すると、Teams チャットまたはチャネルのメッセージ作成領域からサード パーティのストレージ アプリにファイルをアップロードできます。
注:
thirdPartyCloudStorage
API は、ファイルがドラッグ アンド ドロップされるシナリオでのみ使用されます。 メッセージ作成ツール バーのプラス記号アイコンを使用してファイルを追加する場合は使用されません。
Teams でドラッグ アンド ドロップされたファイルにサード パーティ製のクラウド ストレージを実装するには、次の手順に従います。
プロパティ
defaultFilesUploadAppId
がサード パーティのストレージ アプリ ID で構成されており、最初のアクションがアプリ マニフェストでUpload
として設定されていることを確認します。アプリケーション コンテキストから次のパラメーターを使用して、一意の ID を作成します。
TeamsJS SDK の
thirdPartyCloudStorage
のgetDragAndDropFiles
API を使用して、ドラッグ アンド ドロップされたファイルをフェッチします。コールバック関数は、ファイルを受信して処理するために実装されます。
コールバック:
(files: FilesFor3PStorage[], error?: SdkError): void;**
次のコード サンプルは、コールバック関数を示しています。
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 }); }); });
その後、サード パーティのクラウド ストレージ アプリは、受信したファイルをサード パーティのクラウド ストレージにアップロードします。
ファイルをサード パーティのクラウド ストレージ アプリにアップロードする方法を次に示します。
ファイルがメッセージ作成領域にドラッグ アンド ドロップされると、ファイルは Teams キャッシュに一時的に格納されます。
サード パーティのクラウド ストレージ アプリは、
uniqueID
を使用してgetDragAndDropFiles
API を呼び出して、ドラッグ アンド ドロップされたファイルをフェッチします。thirdPartyCloudStorage
API は、ドラッグ アンド ドロップされたファイルを返します。ファイルは、コールバック関数を介してサード パーティのクラウド ストレージ アプリで受信されます。
その後、サード パーティのクラウド ストレージ アプリによってファイルがストレージにアップロードされます。
コード サンプル
サンプルの名前 | 説明 | Node.js | .NET | Python |
---|---|---|---|---|
サード パーティのクラウド ストレージ | メッセージ作成領域にドラッグ アンド ドロップされたファイルに対してサード パーティ製クラウド ストレージ アプリを実装する方法を示します。 | 表示 | 表示 | 表示 |
関連項目
Platform Docs