Guest can't submit answer Adaptative Card on Microsoft Teams - botframework

I'm having an error with a custom bot when I send an adaptative card to a meeting and a guest tries to submit an answer. It works when a logged user tries to submit it. It used to work perfectly with a Guest. It seems like the problem is something about the bot login process.
Uncaught TypeError: Cannot read property '*BotId*' of undefined
at t.recordBotMriUsage (3.2-app.min-2477809.js:4)
at _.debounce.trailing (3.2-app.min-2477809.js:3)
at e (2-vendor.min-9ae85bb.js:64)
at f (2-vendor.min-9ae85bb.js:65)
at t.e.buttonClicked (3.2-app.min-2477809.js:3)
at o (lazy-ng1-mod-adaptive-card-components.min-1b02b78.js:1)
at c (lazy-ng1-mod-adaptive-card-components.min-1b02b78.js:1)
at t.handleOnExecuteAction (lazy-ng1-mod-adaptive-card-components.min-1b02b78.js:1)
at adaptiveCard.onExecuteAction (lazy-ng1-mod-adaptive-card-components.min-1b02b78.js:1)
at p (3.2-app.min-2477809.js:3)
Failed to get app entitlement for botId 28:*BotId*
500 Invoke failed due to internal error: Invoke failed: something went wrong in ProcessInvoke
[BotCardService::onButtonClicked_messageback()] sendInvoke failed: {"statusCode":500,"headers":{"cache-control":"no-store, must-revalidate, no-cache","content-length":"119","content-type":"application/json; charset=utf-8","contextid":"tcid=******,server=*****,cv=*******/hfA.1.0","pragma":"no-cache","set-registrationtoken":"**redacted**"},"errorMessage":"Error Code: 500 ","errorCode":500,"request":{}}
error log
EDIT: Here is the manifest.json of the app
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.7/MicrosoftTeams.schema.json",
"manifestVersion": "1.7",
"version": "1.0.0",
"id": "redacted",
"packageName": "redacted",
"developer": {
"name": "redacted",
"websiteUrl": "redacted",
"privacyUrl": "redacted",
"termsOfUseUrl": "redacted"
},
"icons": {
"color": "color.png",
"outline": "outline.png"
},
"name": {
"short": "redacted",
"full": "redacted"
},
"description": {
"short": "redacted",
"full": "redacted"
},
"accentColor": "#FFFFFF",
"bots": [
{
"botId": "redacted",
"scopes": ["personal", "groupchat"],
"supportsFiles": false,
"isNotificationOnly": false
}
],
"composeExtensions": [
{
"botId": "redacted",
"canUpdateConfiguration": true,
"commands": [
{
"id": "getPollCM",
"type": "action",
"title": "Generar encuesta prestador",
"description": "Genera una encuesta para prestadores",
"initialRun": true,
"fetchTask": false,
"context": ["commandBox", "compose"],
"parameters": [
{
"name": "NIT",
"title": "NIT del prestador",
"description": "Solo nĂºmeros",
"inputType": "text"
}
]
}
]
}
],
"permissions": ["identity", "messageTeamMembers"],
"validDomains": ["redacted"]
}

Related

Manifest parsing error when trying to test app in Teams

From https://dev.teams.microsoft.com/, whenever I click "Preview in Teams", it shows an error in Teams with these details copied to the clipboard: "Error while reading manifest.json". If I download the app package and "upload a custom app" I get the same error. What can I do to resolve this? If I remove the messaging extension configuration, it works but I configured that part in their app and that's what I want to build.
This is my manifest file:
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.11/MicrosoftTeams.schema.json",
"version": "1.0.0",
"manifestVersion": "1.11",
"id": "3fXXXX",
"packageName": "com.package.name",
"name": {
"short": "Domo Integration",
"full": ""
},
"developer": {
"name": "Domo Inc.",
"mpnId": "",
"websiteUrl": "https://www.domo.com",
"privacyUrl": "https://www.domo.com/company/privacy-policy",
"termsOfUseUrl": "https://www.domo.com/company/service-terms"
},
"description": {
"short": "short",
"full": "full"
},
"icons": {
"outline": "outline.png",
"color": "color.png"
},
"accentColor": "#FFFFFF",
"composeExtensions": [
{
"botId": "deXXXXXXXX",
"commands": [],
"canUpdateConfiguration": true,
"messageHandlers": [
{
"type": "link",
"value": {
"domains": [
"*.domo.com"
]
}
}
]
}
],
"validDomains": [
"*.domo.com"
]
}
#ccnokes In order to use messaging extension in your bot, you need to provide at least one command. commands is required property in composeExtension - see doc.
I was also getting the same error when tried with your manifest but after adding commands it worked totally fine.

Attempt to install new bot apps for Teams yields generic error "Manifest Parsing has Failed"

Working with a new Microsoft Teams App (a Bot, built with the MS Bot Framework, and deployed to Azure). Whether using the soon-to-be-deprecated App Studio, or the soon-to-replace-it Preview of the Developer Portal, attempting to install directly or to download the manifest and sideload to teams, in every case the following image is displayed:
The message "Manifest parsing has failed" is quite unhelpful. I am mystified that Microsoft is not supplying some additional information about WHAT failed. Is there a log file somewhere that I can find the actual problem?
UPDATE RESPONDING TO COMMENTS:
One kind commenter pointed me to a similar SO question, but the suggested solution (setting manfestVersion from that currently generated at 1.9 to 1.7) did not work. Behavior was identical.
Another commenter asked me to provide the manifest scrubbed of identifying information. Here it is:
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.9/MicrosoftTeams.schema.json",
"version": "1.0.0",
"manifestVersion": "1.9",
"id": "VALID-GUID",
"packageName": "com.package.name",
"name": {
"short": "Stephan Trial App",
"full": ""
},
"developer": {
"name": "Valid Company",
"mpnId": "Correct mpnId",
"websiteUrl": "https://www.thiscompany.com",
"privacyUrl": "https://www.thiscompany.com/legal/privacy-policy/",
"termsOfUseUrl": "https://www.thiscompany.com/legal/terms-of-use/"
},
"description": {
"short": "Stephan's App's Short Description",
"full": "Stephan's App's Longer Description"
},
"icons": {
"outline": "outline.png",
"color": "color.png"
},
"accentColor": "#FFFFFF",
"bots": [
{
"botId": "VALID-CORRECT-GUID",
"scopes": [
"team",
"personal"
],
"isNotificationOnly": false,
"supportsFiles": false
}
],
"composeExtensions": [
{
"botId": "SAME-VALID-CORRECT-GUID-AS-BOT-ABOVE",
"commands": [
{
"id": "CmdID",
"type": "query",
"title": "Command Title",
"description": "Command Description",
"initialRun": true,
"fetchTask": false,
"context": [
"commandBox",
"compose",
"message"
],
"parameters": [
{
"name": "ParmID",
"title": "Parameter Title",
"description": "Parameter Description",
"inputType": "Text",
"choices": []
}
]
}
],
"canUpdateConfiguration": true,
"messageHandlers": []
}
],
"validDomains": [],
"devicePermissions": [
"geolocation"
]
}
I think I found the problem. Within composeExtensions > commands > parameters you have inputType but it's set to 'Text' (capital T) which is invalid - it needs to be 'text' (small 't'). Try that and it should be fine.

Manifest parsing failed when loading the sample app microsoft-teams-sample-meetings-token

I am following the Readme to get the microsoft-teams-sample-meetings-token app running locally .
I got the app from github https://github.com/OfficeDev/microsoft-teams-sample-meetings-token
Most of the steps completed without issue, until loading the custom app manifest,
I got an error like this
"Manifest parsing has failed.
For more information, please visit aka.ms/teamsdocs"
my manifest look like below. how can I tell what's wrong with tis manifest?
{
"$schema": "https://raw.githubusercontent.com/OfficeDev/microsoft-teams-app-schema/preview/DevPreview/MicrosoftTeams.schema.json",
"manifestVersion": "devPreview",
"version": "1.0.0",
"id": "addac13a-3ab7-43af-8cdb-feb5248cf08a",
"packageName": "com.microsoft.teams.sample.meetingtoken",
"webApplicationInfo": {
"id": "addac13a-3ab7-43af-8cdb-feb5248cf08a",
"resource": "api://32c70efa94ea.ngrok.io"
},
"developer": {
"name": "[companyName]",
"websiteUrl": "[websiteUrl]",
"privacyUrl": "[privacyUrl]",
"termsOfUseUrl": "[termsOfUseUrl]"
},
"name": {
"short": "Meeting Token App"
},
"description": {
"short": "Meeting Token App",
"full": "Token app optimized for meetings to generate sequential tokens for participants"
},
"icons": {
"outline": "icon-outline.png",
"color": "icon-color.png"
},
"accentColor": "#ffffff",
"configurableTabs": [
{
"configurationUrl": "https://32c70efa94ea.ngrok.io/configure.html",
"canUpdateConfiguration": true,
"scopes": [
"groupchat"
],
"context": [
"meetingChatTab",
"meetingDetailsTab",
"meetingSidePanel"
]
}
],
"permissions": [
"identity",
"messageTeamMembers"
],
"validDomains": [
"32c70efa94ea.ngrok.io"
],
"bots": [
{
"botId": "addac13a-3ab7-43af-8cdb-feb5248cf08a",
"scopes": [
"groupchat"
],
"needsChannelSelector": false,
"isNotificationOnly": false,
"supportsFiles": false,
"commandLists": [
{
"scopes": [
"groupchat"
],
"commands": [
{
"title": "reset",
"description": "reset the settings for the bot in the service"
}
]
}
]
}
]
}
If you haven't tried already, one useful way of finding specific issues with the app manifest is to add "App Studio" as an app in teams.
You should see the manifests you've been working with - if you go to "Test and distribute" it will parse your manifest and point out any potential problems.

Cannot get subEntityId on MS Teams tab app from deep link

I cannot retrieve a subEntityId on a Teams tab app from a deep link. It's always empty in getContext. Could anyone please help me out?
I generated a deep link as following this page, https://learn.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/deep-links
The link looks like this,
https://teams.microsoft.com/l/entity/58061894-78f0-49c3-99d7-25830d1c84f0/anpi-personal&context=%7B%22subEntityId%22:%22task123%22%7D
The link works as it expected, it brings me to the tab app on Teams. But no subEntityId.
The manifest of the tab app looks like this,
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.7/MicrosoftTeams.schema.json",
"manifestVersion": "1.7",
"version": "1.0.0",
"id": "58061894-78f0-49c3-99d7-25830d1c84f0",
"packageName": "something.package.name",
"developer": {
"name": "dev",
"websiteUrl": "some url",
"privacyUrl": "some url",
"termsOfUseUrl": "some url"
},
"icons": {
"color": "color.png",
"outline": "outline.png"
},
"name": {
"short": "some name",
"full": "some text"
},
"description": {
"short": "some text",
"full": "some text"
},
"accentColor": "#FFFFFF",
"staticTabs": [
{
"entityId": "anpi-personal",
"name": "app name",
"contentUrl": "https://exmample.com/Default.aspx?entityId={entityId}&subEntityId={subEntityId}",
"scopes": [
"personal"
]
}
],
"permissions": [
"identity",
"messageTeamMembers"
],
"validDomains": [
"foo.com"
],
"webApplicationInfo": {
"id": "13958568-6984-47d4-910f-7bb9c87078c2",
"resource": "api://exmample.com/13958568-6984-47d4-910f-7bb9c87078c2"
}
}
I think you need to change:
...anpi-personal&context=%7B%22subEntityId%22:%22task123%22%7D
to:
...anpi-personal?context=%7B%22subEntityId%22:%22task123%22%7D
the change is hard to see - I've changed "&context" to "?context" - "&" is required if you have -multiple- values you're passing (like "weburl=something" AND "context=something"), but in this case you only have "context", so it needs to start with "?"

Microsoft Teams configurable tab "team"-scope not working

I create a new teams app by using the Teams Apps generator. I selected configurable tab -> scope "team" and "groupchat":
{
"$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.5/MicrosoftTeams.schema.json",
"manifestVersion": "1.5",
"id": "dfbf6890-7268-11ea-ad8e-3f4752fcafa2",
"version": "0.0.1",
"packageName": "test4",
"developer": {
"name": "dev",
"websiteUrl": "https://{{HOSTNAME}}",
"privacyUrl": "https://{{HOSTNAME}}/privacy.html",
"termsOfUseUrl": "https://{{HOSTNAME}}/tou.html"
},
"name": {
"short": "test4",
"full": "test4"
},
"description": {
"short": "TODO: add short description here",
"full": "TODO: add full description here"
},
"icons": {
"outline": "icon-outline.png",
"color": "icon-color.png"
},
"accentColor": "#D85028",
"configurableTabs": [
{
"configurationUrl": "https://{{HOSTNAME}}/smensocloudTab/config.html",
"canUpdateConfiguration": true,
"scopes": [
"team",
"groupchat"
]
}
],
"staticTabs": [],
"bots": [],
"connectors": [],
"composeExtensions": [],
"permissions": [
"identity",
"messageTeamMembers"
],
"validDomains": [
"{{HOSTNAME}}"
]
}
But when i side load the app to test in teams, i only see "Add to a chat" but not "Add to a team".
See the attached Screenshots (frist is how it is, second how i want it).
How can i fix this?
I found it,
if anyone ever has the same problem.
Remove the empty defintions:
"staticTabs": [],
"bots": [],
"connectors": [],
"composeExtensions": []
That solved the case for us.

Resources