Hi Team, I am working on uploading attachments to the team's channel by using graph API, As per the document we have uploaded files to the share point folder and then get the details of attachments and construct the attachment details as objects to send messages to team's channel.
As per my observation if we try to update txt, pdf it is working as expected but with the ".docx,.doc,.ppt etc..," we are facing an issue i.e web URL is provided by API for "pdf/txt" content if different for ".doc, .docx"
After posted to Share point folder :
txt/doc : weburl is "https://italentcorporation1.sharepoint.com/sites/ICS-DEV/Shared%20Documents/General/sample.pdf"
docx/doc : web url is "https://italentcorporation1.sharepoint.com/sites/ICS-DEV/_layouts/15/Doc.aspx?sourcedoc=%7B484E72FC-1E20-406B-92B4-B287591FA3CA%7D&file=sample1.doc&action=default&mobileredirect=true"
Steps to Reproduce the issue.
Step 1: Upload a file in to share folder drive with PUT API (https://graph.microsoft.com/v1.0/groups/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*/drive/items/\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*:/sample1.doc:/content
file is : sample1.doc
Once upload to share point Response is like below:
Response :
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups('ef3a57f4-ed3f-4970-a4f7-28587ab65774')/drive/items/$entity",
"@microsoft.graph.downloadUrl": "https://italentcorporation1.sharepoint.com/sites/ICS-DEV/_layouts/15/download.aspx?UniqueId=484e72fc-1e20-406b-92b4-b287591fa3ca&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyJhdWQiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvaXRhbGVudGNvcnBvcmF0aW9uMS5zaGFyZXBvaW50LmNvbUBlNTVmZTA4YS1lNGUzLTQ2MjctYWQ0MC1kOTk2MWM2MTJhYWEiLCJpc3MiOiIwMDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAiLCJuYmYiOiIxNjQ5MjQzNjE4IiwiZXhwIjoiMTY0OTI0NzIxOCIsImVuZHBvaW50dXJsIjoiV294eWV0Q0djc0huM0gxVEkvN280eWVBZ2REdndpUVQzNWN6dnkzTVlHMD0iLCJlbmRwb2ludHVybExlbmd0aCI6IjE0NCIsImlzbG9vcGJhY2siOiJUcnVlIiwiY2lkIjoiTlRJM1ltRmhNelF0TjJNd01TMDBObUptTFdJM01HWXRaVGhpTTJWak1EWXhZVE5pIiwidmVyIjoiaGFzaGVkcHJvb2Z0b2tlbiIsInNpdGVpZCI6IllqQXpZemN5T1RRdFpqaGpOaTAwTVdRMExXRTNaVEV0T0dSalltSmhNekk1TXpVeSIsImFwcF9kaXNwbGF5bmFtZSI6Imljc2RldmFhZCIsImdpdmVuX25hbWUiOiJMYWtzaG1pIE5hcmF5YW5hIiwiZmFtaWx5X25hbWUiOiJOYXR0ZSIsInNpZ25pbl9zdGF0ZSI6IltcImttc2lcIl0iLCJhcHBpZCI6IjhkYzAzNGZhLThhM2YtNGRjNC1hMmFhLTMzMGNlYWFlMzk0ZiIsInRpZCI6ImU1NWZlMDhhLWU0ZTMtNDYyNy1hZDQwLWQ5OTYxYzYxMmFhYSIsInVwbiI6ImxuYXJheWFuYUBpdGFsZW50ZGlnaXRhbC5jb20iLCJwdWlkIjoiMTAwMzIwMDA0MEFDOUMxRCIsImNhY2hla2V5IjoiMGguZnxtZW1iZXJzaGlwfDEwMDMyMDAwNDBhYzljMWRAbGl2ZS5jb20iLCJzY3AiOiJncm91cC5yZWFkIGdyb3VwLndyaXRlIGFsbHByb2ZpbGVzLnJlYWQgYWxscHJvZmlsZXMucmVhZCBhbGxwcm9maWxlcy53cml0ZSIsInR0IjoiMiIsInVzZVBlcnNpc3RlbnRDb29raWUiOm51bGwsImlwYWRkciI6IjIwLjE5MC4xNDUuMTcwIn0.M0NGUGdyZjZMOWxvdGdJMEtWQTcxTFF4VE9CbU5tSEluajNTekNaa3F4OD0&ApiVersion=2.0",
"createdDateTime": "2022-04-06T11:13:38Z",
"eTag": "\"{484E72FC-1E20-406B-92B4-B287591FA3CA},1\"",
"id": "01E5HGNWX4OJHEQIA6NNAJFNFSQ5MR7I6K",
"lastModifiedDateTime": "2022-04-06T11:13:38Z",
"name": "sample1.doc",
"webUrl": "https://italentcorporation1.sharepoint.com/sites/ICS-DEV/_layouts/15/Doc.aspx?sourcedoc=%7B484E72FC-1E20-406B-92B4-B287591FA3CA%7D&file=sample1.doc&action=default&mobileredirect=true",
"cTag": "\"c:{****************},1\"",
"size": 607,
"createdBy": {
"application": {
"id": "********************",
"displayName": "icsdevaad"
},
"user": {
"email": "***********************",
"id": "**********************************",
"displayName": "Lakshmi Narayana Natte"
}
},
"lastModifiedBy": {
"application": {
"id": "******************",
"displayName": "test"
},
"user": {
"email": "lnarayana8**************",
"id": "*******************",
"displayName": "Lakshmi Narayana Natte"
}
},
"parentReference": {
"driveId": "*****************",
"driveType": "documentLibrary",
"id": "*******************",
"path": "/drive/root:/General"
},
"file": {
"mimeType": "application/msword",
"hashes": {
"quickXorHash": "*****************="
}
},
"fileSystemInfo": {
"createdDateTime": "2022-04-06T11:13:38Z",
"lastModifiedDateTime": "2022-04-06T11:13:38Z"
}
}
Step 3: We have to perform a post call to send message in teams with attachement
As per document we have grab the our attachment ID is the GUID in the eTag of the driveItem, your attachment contentURL is the webUrl of the driveItem's
Request Body :
POST-https://graph.microsoft.com/v1.0/teams/fbe2bf47-16c8-47cf-b4a5-4b9b187c508b/channels/19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2/messages
Content-type: application/json
{
"body": {
"contentType": "html",
"content": "Here's the latest budget. <attachment id=\"*********************\"></attachment>"
},
"attachments": [
{
"id": "*************************",
"contentType": "reference",
"contentUrl": "https://italentcorporation1.sharepoint.com/sites/ICS-DEV/_layouts/15/Doc.aspx?sourcedoc=%7B484E72FC-1E20-406B-92B4-B287591FA3CA%7D&file=sample1.doc&action=default&mobileredirect=true"",
"name": "sample1.doc"
}
]
}
Response is :
{
"error": {
"code": "BadRequest",
"message": "File contentUrl extension: '.doc&action=default&mobileredirect=true' and name extension: '.doc' do not match.",
"innerError": {
"date": "2022-04-06T11:15:02",
"request-id": "af37a0e8-9035-4c2c-89a8-376b61356b5e",
"client-request-id": "af37a0e8-9035-4c2c-89a8-376b61356b5e"
}
}
}
