Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to Add Meeting Transcript Bot to Meeting #1489

Open
TDalton52 opened this issue Dec 18, 2024 · 9 comments
Open

Unable to Add Meeting Transcript Bot to Meeting #1489

TDalton52 opened this issue Dec 18, 2024 · 9 comments
Assignees

Comments

@TDalton52
Copy link

I've been following along with the meeting transcript bot tutorial and I've been unable to get it to work for me. When debugging the sample, I can add the bot to Teams, but I am unable to add the bot to a meeting like the tutorial says I should be able to do.

Steps to reproduce:

  1. Download meeting transcript bot sample
  2. Create Azure resources according to meeting transcript bot tutorial linked here
  3. Fill in app manifest and .env.local file with the Azure resource IDs created in step 2
  4. Start debugging the sample with Teams Toolkit
  5. Attempt to add the bot to a meeting

When the debugger runs and my browser opens up, I see the pop-up to add the bot. I click "add", and the window says the bot was added successfully. However, when I create a meeting and click the "+" button to add an app, the bot is not listed in the available apps. I've double-checked my Azure app and bot deployments, and everything looks OK to me permission-wise. Why can't I add the bot to the meeting? Is there an organization-level policy that can stop bots from being added to meetings? Maybe I'm just not doing something in the tutorial correctly?

@sayali-MSFT
Copy link
Collaborator

Hello @TDalton52 ,
Thank you for your inquiry about your Teams app development issue!
We are checking the issue. We will get back to you shortly.

@sayali-MSFT
Copy link
Collaborator

Hello @TDalton52 ,
Please ensure that the app manifest is correctly configured to support meeting scenarios and the manifest should include the meetingExtensionDefinition and context properties to specify that the bot can be used in meetings.

also please follow the steps for running the sample -
https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-transcription/nodejs#running-the-sample

@TDalton52
Copy link
Author

Hello @TDalton52 , Please ensure that the app manifest is correctly configured to support meeting scenarios and the manifest should include the meetingExtensionDefinition and context properties to specify that the bot can be used in meetings.

also please follow the steps for running the sample - https://github.com/OfficeDev/Microsoft-Teams-Samples/tree/main/samples/meetings-transcription/nodejs#running-the-sample

Hello again,

I figured out the context properties part but I'm not sure how to property configure the meetingExtensionDefinition? I see that it's a manifest property but it requires me to make a scene. Do I have to do anything special outside of this tutorial? I tried creating a new scene, downloading the app package for that scene, and adding a new meetingExtensionDefinition to the original app manifest with the scene metadata from the scene app. That causes my app to crash on load, so unless I have to make some special scene, there's some other issue going on. Also, there is no mention of needing to add a meetingExtensionDefinition to the manifest in the meeting transcript bot repository or in the tutorial. Please add this to the tutorial for future people who want to use it as a reference.

@sayali-MSFT
Copy link
Collaborator

Hello @TDalton52 ,
There's no need to do anything beyond the tutorial; simply follow each step outlined in the tutorial.

The manifest should include the meetingExtensionDefinition and context properties to specify that the bot can be used in meetings.
Example manifest snippet:

{
  "manifestVersion": "1.10",
  "version": "1.0.0",
  "id": "your-app-id",
  "packageName": "com.yourcompany.yourapp",
  "developer": {
    "name": "Your Company",
    "websiteUrl": "https://yourcompany.com",
    "privacyUrl": "https://yourcompany.com/privacy",
    "termsOfUseUrl": "https://yourcompany.com/terms"
  },
  "description": {
    "short": "Your app description",
    "full": "Your full app description"
  },
  "icons": {
    "color": "color.png",
    "outline": "outline.png"
  },
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [
    "yourdomain.com"
  ],
  "bots": [
    {
      "botId": "your-bot-id",
      "scopes": [
        "personal",
        "team",
        "groupchat",
        "meeting"
      ],
      "supportsFiles": false,
      "isNotificationOnly": false,
      "commandLists": [
        {
          "scopes": [
            "personal",
            "team",
            "groupchat",
            "meeting"
          ],
          "commands": [
            {
              "title": "Help",
              "description": "Shows help information"
            }
          ]
        }
      ]
    }
  ],
  "meetingExtensionDefinition": {
    "scopes": [
      "meetingStage",
      "sidePanel",
      "meetingChat"
    ],
    "context": [
      "meetingChat",
      "meetingDetails",
      "meetingSidePanel",
      "meetingStage"
    ]
  }
}

@TDalton52
Copy link
Author

Hello @TDalton52 , There's no need to do anything beyond the tutorial; simply follow each step outlined in the tutorial.

The manifest should include the meetingExtensionDefinition and context properties to specify that the bot can be used in meetings. Example manifest snippet:

{
  "manifestVersion": "1.10",
  "version": "1.0.0",
  "id": "your-app-id",
  "packageName": "com.yourcompany.yourapp",
  "developer": {
    "name": "Your Company",
    "websiteUrl": "https://yourcompany.com",
    "privacyUrl": "https://yourcompany.com/privacy",
    "termsOfUseUrl": "https://yourcompany.com/terms"
  },
  "description": {
    "short": "Your app description",
    "full": "Your full app description"
  },
  "icons": {
    "color": "color.png",
    "outline": "outline.png"
  },
  "permissions": [
    "identity",
    "messageTeamMembers"
  ],
  "validDomains": [
    "yourdomain.com"
  ],
  "bots": [
    {
      "botId": "your-bot-id",
      "scopes": [
        "personal",
        "team",
        "groupchat",
        "meeting"
      ],
      "supportsFiles": false,
      "isNotificationOnly": false,
      "commandLists": [
        {
          "scopes": [
            "personal",
            "team",
            "groupchat",
            "meeting"
          ],
          "commands": [
            {
              "title": "Help",
              "description": "Shows help information"
            }
          ]
        }
      ]
    }
  ],
  "meetingExtensionDefinition": {
    "scopes": [
      "meetingStage",
      "sidePanel",
      "meetingChat"
    ],
    "context": [
      "meetingChat",
      "meetingDetails",
      "meetingSidePanel",
      "meetingStage"
    ]
  }
}

This manifest is not valid. When I run the validateAppPackage step in teamsapp.local.yml, I get the following errors:

(×) Error: Value "meeting" is not defined in the enum. 

File path: manifest.json, title: bots[0].scopes[3]

(×) Error: Array item count 4 exceeds maximum count of 3. 

File path: manifest.json, title: bots[0].scopes

(×) Error: Value "meeting" is not defined in the enum. 

File path: manifest.json, title: bots[0].commandLists[0].scopes[3]

(×) Error: Array item count 4 exceeds maximum count of 3. 

File path: manifest.json, title: bots[0].commandLists[0].scopes

(×) Error: Property "scopes" has not been defined and the schema does not allow additional properties.

File path: manifest.json, title: meetingExtensionDefinition.scopes

(×) Error: Property "context" has not been defined and the schema does not allow additional properties.

File path: manifest.json, title: meetingExtensionDefinition.context

(×) Error: Required properties are missing from object: ["name","accentColor"]. 

File path: manifest.json, title: root

If I turn off the validation step, the teamsApp/update step fails with this manifest.

I think the errors are due to this manifest being schema version 1.10, which is outdated. Is there a newer version of this manifest? The manifest in the repository is version 1.19 and passed all of the validation checks.

@sayali-MSFT
Copy link
Collaborator

@TDalton52
Copy link
Author

@TDalton52 ,Could you please try with this manifest json? https://github.com/OfficeDev/Microsoft-Teams-Samples/blob/main/samples/meetings-transcription/nodejs/appManifest/manifest.json

That was the first thing I did. I downloaded the meeting transcript bot folder and used that manifest with no modifications except for replacing the Teams app ID and the AAD app ID placeholders with the correct values. Does that manifest need a meetingExtensionDefinition of some kind or a change to the bot scope?

@sayali-MSFT
Copy link
Collaborator

@TDalton52 , There is no need to modify the manifest at this time as it is working fine as it is. However, since you tried to add the app to the meeting, we suggest including those elements in the manifest for smoother integration.

@TDalton52
Copy link
Author

@TDalton52 , There is no need to modify the manifest at this time as it is working fine as it is. However, since you tried to add the app to the meeting, we suggest including those elements in the manifest for smoother integration.

I'm not sure what you mean by this. It's not working fine for me as is. The first step of the tutorial under "running the sample" is to add the bot to a scheduled meeting via the Apps menu and I have been unable to do this. The bot doesn't show up under available apps when I run the debugger. I can't get a meetingExtensionDefinition to validate under manifest version 1.19 and changing the bot scopes doesn't fix the problem. Is there some kind of organizational policy that can impact this? I am able to add other apps to a test meeting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants