When i tried to copy/paste an image from my system and try to share via Microsoft teams by directly pasting it in the compose box (Not the Clip icon), I am unable to retrieve it on the other end. I keep receiving original.json file which has 401 error.
The activity payload I've received is as below:
{
"text": " \r\n\r\n ",
"textFormat": "plain",
"attachments": [
{
"contentType": "image/*",
"contentUrl": "https://smba.trafficmanager.net/amer/v3/attachments/0-cus-d17-c53459922d66463fb94af32a61057191/views/original"
},
{
"contentType": "text/html",
"content": "<p> </p>\r\n<p><img itemtype=\"http://schema.skype.com/AMSImage\" alt=\"image\" src=\"https://us-api.asm.skype.com/v1/objects/0-cus-d17-c53459922d66463fb94af32a61057191/views/imgo\" itemscope=\"jpeg\" width=\"444.44444444444446\" height=\"250\" aria-label=\"has context menu\" id=\"x_0-cus-d17-c53459922d66463fb94af32a61057191\" itemid=\"0-cus-d17-c53459922d66463fb94af32a61057191\" style=\"vertical-align:bottom\"></p>\r\n<p> </p>"
}
],
"type": "message",
"timestamp": "2023-12-17T09:58:08.0629932Z",
"localTimestamp": "2023-12-17T15:28:08.0629932+05:30",
"id": "1702807088043",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/amer/",
"from": {
"id": "29:18spOrxkvI_78J0qBmTjCWlqbCm3EGNuI6pKQFMFkZKqkiUWdvHc4b3VRbVWEItXL_80_H8owExaXxb9KlhPnMA",
"name": "Praveen Pasam",
"aadObjectId": "42038d1b-4021-47ab-a494-26d722d8348e"
},
"conversation": {
"conversationType": "personal",
"tenantId": "f8250d44-a7af-4d49-85bc-589e0e15d852",
"id": "a:1M23gbESVfdmapfvZtRSod9paD5QRWsJ8L0JOeefNUGpuCymrvAdMBLXOrdYBCSmlMoBkxWf14p-__GEvsnr0LRKk8A2gpVqkwy-UEbSMx5R5SbN-4ioJuiNsUQVuCbya"
},
"recipient": {
"id": "28:2241ccbc-44a8-4267-8898-5affc2159e97",
"name": "SmartAssistLatestUAT"
},
"entities": [
{
"locale": "en-GB",
"country": "GB",
"platform": "Web",
"timezone": "Asia/Calcutta",
"type": "clientInfo"
}
],
"channelData": {
"tenant": {
"id": "f8250d44-a7af-4d49-85bc-589e0e15d852"
}
},
"locale": "en-GB",
"localTimezone": "Asia/Calcutta"
}
I tried adding bot authentication headers for retrieving using below block of code but it doesn't seem to work either. I want to retrieve the attachment from contentUrl and share it to the agent/bot.
const axios = require("axios");
const { MicrosoftAppCredentials } = require("botframework-connector");
async function getAttachment() {
try {
// const serviceUrl = 'https://smba.trafficmanager.net/amer/';
// MicrosoftAppCredentials.trustServiceUrl(serviceUrl);
const contentUrl = "https://smba.trafficmanager.net/amer/v3/attachments/0-cus-d17-c53459922d66463fb94af32a61057191";
// const contentUrl = "https://us-api.asm.skype.com/v1/objects/0-cus-d17-c53459922d66463fb94af32a61057191/views/imgo";
var credentials = new MicrosoftAppCredentials("<appId>", "<appPassword>");
const botToken = await credentials.getToken();
const config = {
headers: { Authorization: `Bearer ${botToken}` },
responseType: "stream",
};
const response = await axios({ method: "GET", url: contentUrl, ...config });
console.log(" ~ file: testAPI.js:16 ~ getToken ~ response:", response.data);
} catch (error) {
console.log(" ~ file: tets.js:24 ~ getToken ~ error:", error);
}
}
getAttachment();