OfficeDev / Microsoft-Teams-Samples

Welcome to the Microsoft Teams samples repository. Here you will find task-focused samples in C#, JavaScript and TypeScript to help you get started with the Microsoft Teams App!
MIT License
1.01k stars 775 forks source link

Attachments with special characters lost when uploaded from MS Teams #1392

Open LuisM000 opened 1 month ago

LuisM000 commented 1 month ago

Background

This issue was previously reported in #6817 and #4750 in the BotBuilder repository but was closed as the problem seems to be related to Microsoft Teams, not the bot itself. I am reopening this issue here in the Microsoft-Teams-Samples repository, as it was suggested that the fix should be handled on this side.

Version

Lastest

Describe the bug

When I upload an attachment from Microsoft Teams with certain special characters, such as a '+', the attachment "disappears" when it is received in the bot's backend.

For example, uploading a file with a "normal" name like test.txt works as expected, and I receive the following in the bot's backend:

{
    "attachments": [
        {
            "contentType": "application/vnd.microsoft.teams.file.download.info",
            "content": {
                "downloadUrl": "https://ckm-my.sharepoint.com/personal/xxxxxx/_layouts/15/download.aspx?UniqueId=xxxxx-xxxx-xxxx-xxxx-xxxxx&Translate=false&tempauth=v1.xxxx.xxxx.xxxx&ApiVersion=2.0",
                "uniqueId": "xxxx-xxxx-xxxx-xxxx-xxxxx",
                "fileType": "txt"
            },
            "contentUrl": "https://ckm-my.sharepoint.com/personal/xxxxxx/Documents/Microsoft Teams Chat Files/test.txt",
            "name": "test.txt"
        },
        {
            "contentType": "text/html",
            "content": ""
        }
    ],
    "type": "message",
    "timestamp": "2024-07-11T10:29:11.4680572Z",
    "localTimestamp": "2024-07-11T12:29:11.4680572+02:00",
    "id": "1720693751445",
    "channelId": "msteams",
    // ....
}

However, if I upload a file with a name like test+.txt, I only receive the following:

{
    "attachments": [
        {
            "contentType": "text/html",
            "content": ""
        }
    ],
    "type": "message",
    "timestamp": "2024-07-11T10:36:45.0287287Z",
    "localTimestamp": "2024-07-11T12:36:45.0287287+02:00",
    "id": "1720694205007",
    "channelId": "msteams",
    //...
}

To Reproduce

Steps to reproduce the behavior:

  1. Use the basic example from BotBuilder-Samples.
  2. Upload a file with a normal name (e.g., test.txt) from Microsoft Teams.
  3. Observe the attachment received in the bot's backend.
  4. Upload a file with a special character in the name (e.g., test+.txt) from Microsoft Teams.
  5. Observe the attachment received in the bot's backend.

Expected behavior

Attachments with special characters in their names should be processed correctly and received in the bot's backend just like attachments with normal names.

Screenshots

N/A

Nivedipa-MSFT commented 1 month ago

@LuisM000 - Thanks for reporting your issue. We are able to repro your issue. We have raised a bug for it and will let you know once we have any updates on it.

LuisM000 commented 1 month ago

Any updates :)?

Nivedipa-MSFT commented 1 month ago

@LuisM000 - We are checking the status of the bug with the engineering team. We will let you know once we get any updates from them.

gazambuja commented 3 weeks ago

Same problem here, but the file name do not have any special character, and comes from a sharepoint folder:

Screenshot from 2024-10-18 11 04 06

When I see the request that Teams send to the bot, no "attachment" objects come:

{
    "text": "test this file",
    "textFormat": "plain",
    "attachments": [
        {
            "contentType": "text/html",
            "content": "<p>test this file</p>"
        }
    ],
    "type": "message",
    "timestamp": "2024-10-18T14:03:21.2949396Z",
    "localTimestamp": "2024-10-18T11:03:21.2949396-03:00",
    "id": "1729260201268",
    "channelId": "msteams",
    "serviceUrl": "https://smba.trafficmanager.net/amer/",
    "from": {
        "id": "xxxxx",
        "name": "xxxxx",
        "aadObjectId": "xxxxx"
    },
    "conversation": {
        "conversationType": "personal",
        "tenantId": "xxxxx",
        "id": "xxxxxx"
    },
    "recipient": {
        "id": "xxxxxx",
        "name": "xxxxxx"
    },
    "entities": [
        {
            "locale": "en-US",
            "country": "US",
            "platform": "Mac",
            "timezone": "xxxxxx",
            "type": "clientInfo"
        }
    ],
    "channelData": {
        "tenant": {
            "id": "xxxxxx"
        }
    },
    "locale": "en-US",
    "localTimezone": "xxxxxx"
}
rliberoff commented 1 week ago

Hello, It has been almost two months since this has been reported.

Is there any update?

This is becoming a huge issue for Copilot initiatives using Teams as a communication channel.

Please help!!! 😥😥😥

Nivedipa-MSFT commented 4 days ago

@rliberoff - Thank you for your inquiry regarding the status of the bug. We are currently checking in with the engineering team for any updates. We appreciate your patience and will inform you as soon as we have more information. Thank you!