/** * Build a native Teams file card attachment for Bot Framework. * * This uses the `application/vnd.microsoft.teams.card.file.info` content type * which is supported by Bot Framework and produces native Teams file cards * (the same display as when a user manually shares a file). * * @param file - DriveItem properties from getDriveItemProperties() * @returns Attachment object for Bot Framework sendActivity()
*/ import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/text-runtime"; import type { DriveItemProperties } from "./graph-upload.js";
export function buildTeamsFileInfoCard(file: DriveItemProperties): {
contentType: string;
contentUrl: string;
name: string;
content: {
uniqueId: string;
fileType: string;
};
} { // Extract unique ID from eTag (remove quotes, braces, and version suffix) // Example eTag formats: "{GUID},version" or "\"{GUID},version\"" const rawETag = file.eTag; const uniqueId =
rawETag
.replace(/^["']|["']$/g, "") // Remove outer quotes
.replace(/[{}]/g, "") // Remove curly braces
.split(",")[0] ?? rawETag; // Take the GUID part before comma
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.